Php Laravel 4中动态内容的制作和错误视图
我正在使用Laravel 4完成我的第一个基于web的应用程序,它几乎完成了,我遇到的问题如下: 我正在尝试使用动态内容创建自定义404错误视图,我有一个表单,其中包含从DB填充的两个选择,我通过基本控制器执行此操作,如下所示:Php Laravel 4中动态内容的制作和错误视图,php,laravel,laravel-4,Php,Laravel,Laravel 4,我正在使用Laravel 4完成我的第一个基于web的应用程序,它几乎完成了,我遇到的问题如下: 我正在尝试使用动态内容创建自定义404错误视图,我有一个表单,其中包含从DB填充的两个选择,我通过基本控制器执行此操作,如下所示: protected function setupLayout() { if (!is_null($this->layout)) { $this->layout = View::make($this->layout); }
protected function setupLayout() {
if (!is_null($this->layout)) {
$this->layout = View::make($this->layout);
}
View::composer('templates.partials.footer', function ($view) {
$languages = array('' => 'Choose Language Pair:') + Language::orderBy('order')->lists('name', 'id');
$view->with('languages', $languages);
});
}
这个表单需要出现在整个web中,并且它在所有视图中都可以正常工作,但错误之一是,当我输入一个未验证的url时,一个php错误告诉我footer视图中的变量$languages未定义。我试着从默认模板中删除页脚,效果非常好
以下是我如何处理我的错误:
-在global.php中
App::error(function(Exception $exception, $code) {
//Log::error($exception);
return BaseController::handleError($code);
});
-以及BaseController中的方法:
protected function handleError($code) {
//return View::make('404' . $code);
switch ($code) {
case 403:
return Response::view('404', array(), 403);
case 404:
return Response::view('404', array(), 404);
case 500:
return Response::view('404', array(), 500);
default:
return Response::view('404', array(), $code);
}
}
正如您所看到的,我尝试过使用Response::view,但它似乎没有加载将数据发送到表单的view::composer,而使用return view::make的另一种方法也不好,因为出于SEO原因,我需要它成为一个错误
所以
在浏览器中获取错误时,是否有方法将动态数据发送到错误视图
谢谢 我相信您的控制器在404错误期间不会加载,这意味着您的BaseController永远不会被击中
我建议将您的视图生成器逻辑放在basecontroller中的
app/start/global.php
中。谢谢您的帖子,我尝试了,复制了view::composer(…)。。。应用程序内部的global.php文件中的代码:错误。。。而且也不起作用。。。我做的对吗?请尝试在App::error()
之外添加它。如果它在那里,如果没有异常发生,它就永远不会被加载。太棒了!非常感谢你,真是妙极了!