gpt4 book ai didi

php - 绑定(bind) View::composer 以使用通配符匹配所有 View ?

转载 作者:可可西里 更新时间:2023-11-01 12:30:20 24 4
gpt4 key购买 nike

我有一个这样的导航栏。

<li>Account</li>
<ul>
<li>Register</li>
<li>Login/li>
...

我想根据 Auth::check() 动态更新它。例如,如果用户已登录,“帐户”将更改为“我的个人资料页面”,并且子 sibling 将被替换为适当的数组。

我需要在不编辑 Controller 中的 View::make calls 的情况下执行此操作。看起来很糟糕。

我正在寻找这样的解决方案;

View::composer('home.*', function($view) {
if(Auth::check())
return $view->nest('accountArea', 'home.navigation-loggedIn', null);
else
return $view->nest('accountArea', 'home.navigation-visitor', null);
});

如果有更好的选择,我也想听听!

最佳答案

似乎 Laravel 中的通配符是有效的。到目前为止,它们还没有记录。

View::composer('admin.layouts.*', function($view)
{
if (Sentry::check()) $view->with('navigation', View::make('admin._partials.navigation'));
else $view->with('navigation', null);
});

这就是我要找的。

更新:这是一个替代解决方案

您还可以将它绑定(bind)到布局,因此所有扩展该布局的 subview 都将受益于 composer。

View::composer('admin.layouts.main_layout', function($view)
{
if (Sentry::check()) $view->with('navigation', View::make('admin._partials.navigation'));
else $view->with('navigation', null);
});

它会将 Composer 绑定(bind)到每个执行 @extend('admin.layouts.main_layout') 的 View 。

关于php - 绑定(bind) View::composer 以使用通配符匹配所有 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16711854/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com