function load_404_page_then_die($obj)
{
$obj->output->set_status_header(404);
load_page_with_great_races_sidebar($obj, 'errors/html/error_404_custom');
send_view_then_die($obj);
}
function send_view_then_die($obj)
{
// Force the CI engine to render the content generated until now
$obj->CI =& get_instance();
$obj->CI->output->_display();
die();
}
控制器/X. php
$data['volunteer'] = $this->volunteer_model->get_volunteer_by_id($volunteer_id_and_text) OR load_404_page_then_die($this);
6条答案
按热度按时间r6l8ljro1#
https://www.codeigniter.com/user_guide/general/views.html
还有第三个可选参数可以让你改变函数的行为,使它以字符串的形式返回数据,而不是将数据发送到浏览器。如果你想以某种方式处理数据,这会很有用。
dfty9e192#
我知道我迟到了,但我在搜索时遇到了这个问题,以找出加载视图是否会停止执行,但显然它不会。
它可能对某些人仍然有用,所以...要在加载视图后停止执行,只需返回:
这将不会停止PHP(与
die()
或exit()
不同),CI将正常加载视图,并且以下任何代码都不会运行。11dmarpk3#
这是一个很好的问题。经过大量的谷歌搜索,我现在把我的错误页面这样扔:
帮助程序/X. php
控制器/X. php
另一种方法是在控制器的公共方法中使用“return”。但是,这会导致代码无法在一行中显示,并且在控制器的私有方法或帮助器文件中不能使用此技术。
控制器/X. php
piwo6bdm4#
你应该在控制器方法的最后调用load-〉view。如果你停止执行,主题的其他部分将不会被加载。你的视图文件内容将只被呈现。你可以使用这个方法来 AJAX ,你不希望任何其他东西应该被呈现,除了你想作为ajax调用的输出呈现的东西。
1aaf6o9v5#
AFAIK,你不能,因为Codeigniter必须运行其他脚本后,你加载一个视图,如CI需要调用
Output
方法从Output
类渲染您的视图.在你的情况下(如果我没有误解),我建议你只加载您的视图在您的控制器结束.pgky5nke6#
我知道我已经很晚了。但是这里有一个解决方案。它必须输出到_display。只是以防万一,如果任何新手面临同样的问题,那么这将是理想的,我觉得。