我有一个包含用户数据的表。我已经创建了一个视图,我可以在其中查看用户的名称,并在单击该名称时,我希望查看该特定用户的详细信息。你能给我讲讲这个问题吗?这将是一个很大的帮助!
如果您想在多个视图之间共享一个变量,您可以很容易地在facade上使用share
方法。在文档中有一整节是关于这个的:
https://laravel.com/docs/5.2/views sharing-data-with-all-views
View::share('key', 'value');
如果你想记住一个特定的值来显示在下一页,你可以使用会话来"闪光"数据。文档中也有一篇关于这个的文章:
https://laravel.com/docs/5.2/session flash-data
请注意,您需要将这些会话数据重新注入到视图中,可能是通过在view facade上使用上面的"share"方法。
从你的问题来看,你的要求不明确。
我是专门回复你的这个评论的:
是的对的。我有一个包含用户数据的表。我已经创建了一个视图,在其中我可以查看用户的名字,并在点击我期望查看用户的详细信息的名字。你能给我讲讲这个问题吗?
当用户单击超级链接时,将user-id传递给该链接。现在,为这个路由编写一个控制器,在其中使用user-id获取用户详细信息,并将其传递给视图。
在您的视图中,您可以使用php变量:
@include('view.name', ['some' => 'data'])
现在在'view.name'中有变量$some包含'data'
你可以将变量传递给另一个视图,就像你在控制器中做的那样。
假设你在控制器中有这个方法:
public function whatever()
{
$someData = ...
$otherData = ...
return view('view', compact('someData', 'otherData));
}
在你看来:
<html>
<h1>{{ $someData->text }}</h1>
@include('otherView', ['otherData' => $otherData])
</html>
编辑:请注意,otherData
无论如何都将在包含的视图中可用。你不需要传阅。如果您想为变量使用不同的别名,上面的示例非常有用。
很久以前,我创建了这个功能,其中变量传递给多个视图。下面是代码
View::composer('admin.layouts.navbar', function($view){
$view->with('key', 12);
});
您可以将此代码粘贴到routes.php
文件
这里的布局文件是/resources/views/admin/layout/navbar
和变量名是$key
,它可以在导航栏视图中访问,如
{{$key}}