如何确保通过视图编辑器为选择视图加载数据,并且只排除少数两个视图?我可以使用正则表达式而不是'*'吗?
public function boot()
{
view()->composer(
'*',
'App\Http\ViewComposers\ProfileComposer'
);
}
我只想避免两种观点,它们扩展了其他人使用的相同刀片,不确定声明所有其他99种将是最好的 - 如果我可以定义那些被遗漏的那些太棒了。
答案 0 :(得分:2)
也许这不是最好的方法,但它可以这样做
在您的服务提供商中注册您的视图编辑器
public function boot()
{
view()->composer(
'*',
'App\Http\ViewComposers\ProfileComposer'
);
}
在您的ProfileComposer
撰写方法中,View类存储库是类型提示。使用它来获取视图当前名称的名称,并为排除的视图名称创建条件。
class ProfileComposer
{
public function __construct()
{
// Dependencies automatically resolved by service container...
}
/**
* Bind data to the view.
*
* @param View $view
* @return void
*/
public function compose(View $view)
{
$excludedViews = ['firstView','SecondView'];
//Check if current view is not in excludedViews array
if(!in_array($view->getName() , $excludedViews))
{
$view->with('dataName', $this->data);
}
}
}