我在Laravel中有一个刀片文件,名为products.blade.php。在该文件的内部,我包括一个子视图,该视图显示数据库中的数据。子视图正在使用View Composer获取数据(以避免在我需要显示该数据的任何地方编写相同的代码)。
是否可以将“主”视图的名称传递给该View Composer?
在我的AppServiceProvider中,我有以下代码:
view()->composer('*', function ($view) {
view()->share('view_name', $view->getName());
});
因此,子视图知道父视图的名称。我尝试过:
@include('sub-view.name', ['parent' => $view_name])
并尝试在View Composer中访问该parent
变量,但我得到了:Undefined variable: parent
。
我还在View Composer的compose方法中尝试过$view->getName()
,但是它给了我sub-view
的名字,我需要parent
。
任何帮助将不胜感激。
预先感谢
答案 0 :(得分:0)
可以使用$view->getData()
方法访问所有视图数据。
因此,您可以在视图编辑器中完成
class MyCustomComposer
{
/**
* Bind data to the view.
*
* @param View $view
* @return void
*/
public function compose(View $view)
{
$currentView = $view->getData()['view_name'];
// Do something
}
}