这是我的控制器的代码:
public function getIndex()
{
// Get all the apps
$apps = $this->app->orderBy('created_at', 'DESC')->paginate(50);
// Show the page
return View::make('site/apps/index', compact('apps'));
}
从这里我如何在模板“site / apps / index”中获取页面名称?
当我执行var_dump()时,我得到一个巨大的数组和对象,这是不可能筛选的。
我正在寻找最佳实践。
我试图获取页面名称的原因是控制何时将CSS值添加到HTML中。
这就是我现在正在做的事情:
@if (Auth::check())
<style>
body {
background-color: #fbfbfb !important;
}
</style>
@endif
但是,登录时并非所有页面都应该具有背景颜色,只有一个......页面名称是应用程序。
如果您有更好的方法,欢迎分享。
答案 0 :(得分:0)
您可以通过以下方式获取当前网址,并根据您要更改CSS的网址对其进行验证。看看this post,了解这是如何完成的。
答案 1 :(得分:0)
当我查看代码时,您看起来就是根据用户是否登录来操纵body元素的样式。
我会按如下方式解决这个问题:
创建两个类并将它们添加到外部CSS文件中。
.body-logged-in{
background-color: #somecolor;
}
.body-not-logged-in{
background-color: #someothercolor;
}
在模板文件中,根据您从路由器或控制器获取的信息,回显相关的类名。
e.g。路由器:
Route::get('yourpage', function()
{
$users = User::all();
return View::make('yourtemplate')->with('users', $users)->with('loggedInStatus', 'body-logged-in');
});
当您的模板通过用户的身份验证详细信息时,您知道当前用户已登录。或者将带有控制器的loggedInStatus传递给模板。
看起来像这样
<body class="{{ $loggedInStatus }}" >
使用这种方法,你保持MVC原则,不要搞砸你的代码。如果要更改CSS样式,只需编辑.CSS文件即可。这样您就不需要触摸模板/视图文件。此外,如果要将其添加到其他页面,则无需检查页面名称并仅使用视图和CSS。
最后,它取决于您的业务逻辑需要什么。希望我能给你一些想法。