gpt4 book ai didi

php - 如何将相同的数据传递给laravel中的多个 View

转载 作者:行者123 更新时间:2023-12-04 00:30:23 24 4
gpt4 key购买 nike

从 Controller 方法中,我将 $notifications 发送到主 View 并在我网站的标题上显示通知。

个人资料 View 扩展了主页 View ,我还想在个人资料 View 上显示通知。

但是当我请求配置文件 View 时,它会生成 undefined variable $notifications 的错误。

我认为一种解决方案是在从 Controller 方法返回配置文件 View 时发送 $notifications,但在网站中,我想在很多 View 上显示通知选项卡,所以这是我正在思考的正确方式。

我通过以下方式返回了主页 View

return view('home')->with(['unseen_notification_counter'=>$unseen_notification_counter,'notifications'=>$notifications]);

这是标题部分的主页 View 中的代码
<ul class="dropdown-menu" id="notificationlist">
@foreach($notifications as $notification)
<li>
<a href="{{route('user.profile',$notification->id)}}" class="dropdown-item">
<img src="http://localhost/webproject/public/user_images/{{$notification->image}}" class="img-thumbnil" width="20px" height="20px">
<strong>{{$notification->username}}</strong>
<span style="white-space: initial;">sent you a friend request.</span>
</a>
</li>
@endforeach
</ul>

最佳答案

如果您想将相同的数据传递给应用程序中的多个 View ,您可以使用 View Composers

例如。在你的 AppServiceProvider 的 boot() 方法中,你会有类似的东西:

public function boot()
{
view()->composer(['home', 'profile'], function ($view) {

$notifications = \App\Notification::all(); //Change this to the code you would use to get the notifications

$view->with('notifications', $notifications);
});
}

然后,您只需将不同的 Blade 文件名(就像使用路由一样)添加到数组中。

或者,您可以 share 所有 View 的通知:
public function boot()
{
$notifications = \App\Notification::all(); //Change this to the code you would use to get the notifications

view()->share('notifications', $notifications);
}

关于php - 如何将相同的数据传递给laravel中的多个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52082498/

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