Laravel 4视图生成器不工作
我看到了这个问题。我也有类似的问题,但不起作用 我有一个视图生成器,它在基本布局中包含一些代码。这是我的作曲家:Laravel 4视图生成器不工作,laravel,laravel-4,Laravel,Laravel 4,我看到了这个问题。我也有类似的问题,但不起作用 我有一个视图生成器,它在基本布局中包含一些代码。这是我的作曲家: View::composer(array('common.menu_addition','common.base_errors','common.view_special'), function($view) { if(Auth::check()) { $roles = Auth::user()->type; if ($roles ==
View::composer(array('common.menu_addition','common.base_errors','common.view_special'), function($view)
{
if(Auth::check()) {
$roles = Auth::user()->type;
if ($roles == '5') {
$view->with('roles', $roles);
} else {
return Redirect::to('news/index');
}
}
});
当我没有登录时,它可以完美地工作。但我的一个视图编辑器文件如下所示:
<div class="pull-right">
@if (Auth::check())
@if ($roles == 5)
<ul class="nav">
<li>
<a href="{{ URL::to('admin/dash') }}">
<i class="icon-eye-open">
</i>
<strong>
Admin Dashboard
</strong>
</a>
</li>
</ul>
@endif
@endif
</div>
@if(Auth::check())
@如果($roles==5)
-
@恩迪夫
@恩迪夫
当我登录时,它不会显示任何站点。它只是在视图生成器文件中显示
未定义变量:roles
。我认为在视图生成器中不可能返回这样的重定向。即使你可以,这也不是一个好的逻辑。如果用户没有正确的身份验证级别,您应该创建一个过滤器并重定向到别处。看起来您没有事先定义$roles,也没有将$roles传递到视图中
在对视图中的$roles进行检查时,需要确保该变量实际存在。另一种可能是将支票更改为
@if (isset($roles) && $roles == 5)
忽略错误,但从长远来看,这会变得非常混乱
因此,请确保在视图生成器和其他地方预先初始化视图变量。Laravel试图对非初始化变量的要求比普通PHP严格得多。我不认为返回与view composer一起工作,因为view::composer只用于将数据传递给views@TryingTobemyself我只想它有我加载的每个网站的角色,并加载我发布的视图。当我注销时,它工作正常,但当我登录时,我会收到错误。可以发布准确的错误吗?你在哪一行出错?@TryingTobemyself确切的错误是
未定义的变量:roles
在我在问题中发布的视图文件中,这一行是23.,或者它说@if($roles==5)
你的应用程序中还有其他角色吗?我已经有一个:Route::filter('admin',function(){if(Auth::check()){$roles=Auth::user()->role;if($roles='5'){return Redirect::to('news/index')->with('roles',$roles);}}}否则{return View::make('errors.401');}}}}});
那么,我需要一个视图生成器吗?另外,我如何制作$roles=Auth::user()->键入;
转到我加载的每个站点?我在问题中发布的视图有效吗?