我在视图上执行请求,因为我想禁用某些部分和某些页面:
@if (\Request::route()->getName() != 'product.show')
这有效,但我的问题是,我可以在我的路线上设置一个额外的参数,使我的脚本更灵活,例如:
我的路线代码是:
Route::get('/product/{slug}', ['uses' => 'ProductController@show', 'NO_SIDEBAR_PARAM' => 'true'], function ($slug) {
return [$slug];
})->name('product.show');
所以我想在" NO_SIDEBAR_PARAM"上创建if请求。 if设置为" true"或"假"启用或禁用元素。
方法是否正确?
答案 0 :(得分:0)
我使用middleware来设置我希望在大多数视图中可用的视图变量。它也可能有助于解决您的问题。
class SetViewVariables
{
/** @var SideBarBuilder */
private $builder;
public function __construct(SideBarBuilder $builder)
{
$this->builder = $builder;
}
public function handle($request, Closure $next)
{
if ($request->route()->name() == 'product.show') {
view()->share('sidebar', '');
} else {
view()->share('sidebar', $this->builder->makeSideBar());
}
}
}
在此示例中,SideBarBuilder是您自己的类,用于生成侧边栏。我只是喜欢使用Laravels容器来解决这些简单的类。