我正在使用Laravel 8,但似乎不知道哪个控制器控制布局主刀片文件。我已经能够成功地将变量传递到子视图(配置文件页面)文件,但不知道如何实现与布局视图主刀片。
我正在尝试将变量从app\Http\Controllers
中名为ProfileController
的控制器传递到主刀片布局。在profile控制器中,我有一个从数据库中检索用户配置文件数据的代码。
$profileInfo = Profile::with('address')->where('id', '=', '1')->get();
return view('admin_pages.profile', compact('profileInfo'));
在profiles表中,我有名称和图像字段first_name, last_name, photo
,可以使用foreach循环从传递给子视图的数据$profileInfo
访问这些字段,方法是
@foreach($profileInfo as $data)
{{ $data->first_name}}
@endforeach
和/或其他信息。
我的主刀片文件位于resources\views\layout\admin.blade.php
。我希望能够显示admin.blade.php
中的names
和photo
,以便登录用户在登录时可以看到他们的配置文件图像,即使他们没有访问他们的配置文件页面(子视图),该页面位于resources\views\admin_pages\profile.blade.php
,扩展了主刀片(admin.blade.php
)。
请帮忙。
2条答案
按热度按时间iszxjhcz1#
解决方案1:您可以通过@extends as second argument函数从blade文件传递变量。
控制器:
Home.blade.php
Layout.master.blade.php
您将看到结果。
8iwquhpp2#
我建议你去了解一下Laravel Component。
您可以在
admin
布局中使用动态数据使profile
可重用,而无需在每个控制器和路由中传递变量。使用Artisan创建Admin组件:
它将创建一个
Profile.php
作为组件控制器和profile.blade.php
打开Profile.php并添加以下代码:
打开profile.blade.php文件
现在,在模板管理器上呈现Profile组件。
替换
与
您可以通过阅读此链接中的刀片式服务器文档了解更多信息