如何将视图中的php变量传递给Laravel 5.2中的另一个视图?

时间:2016-09-28 12:03:25

标签: php laravel laravel-5.2

我有一个由用户数据组成的表。我创建了一个视图,在该视图中,我可以查看用户的姓名,并点击我希望查看该特定用户的详细信息的名称。你能指导我完成这个问题吗?这将是一个很大的帮助!

5 个答案:

答案 0 :(得分:3)

如果要在多个视图之间共享变量,可以在外观上轻松使用share方法。实际上,文档中有一节关于此:

https://laravel.com/docs/5.2/views#sharing-data-with-all-views

View::share('key', 'value');

如果您想要记住要在下一页显示的特定值,您可以随时使用会话来" flash"数据。该文档也有一篇关于此的文章:

https://laravel.com/docs/5.2/session#flash-data

请注意,您需要将这些会话数据重新注入视图,可能需要使用上面的"分享" View facade上的方法。

答案 1 :(得分:1)

根据您的提问,您的要求不明确 我特地回复了你的评论:

对吧。我有一个由用户数据组成的表。我创建了一个视图,在该视图中,我可以查看用户的姓名,并点击我希望查看用户详细信息的名称。你能指导我完成这个问题吗?这将是一个很大的帮助。

当用户点击超链接时,将用户ID传递给链接。 现在,为此路由编写一个控制器,您可以使用user-id获取用户详细信息并将其传递给视图。

答案 2 :(得分:0)

您可以将变量传递给另一个视图,就像在控制器中一样。

我们假设您在控制器中使用此方法:

public function whatever()
{
    $someData = ...
    $otherData = ...

    return view('view', compact('someData', 'otherData));
}

在你看来:

<html>
   <h1>{{ $someData->text }}</h1>
   @include('otherView', ['otherData' => $otherData])
</html>

编辑:

请注意,otherData无论如何都会在您收录的视图中提供。你不需要传递它。如果要对变量使用不同的别名,上面的示例很有用。

答案 3 :(得分:0)

在您的视图中,您可以使用php vars:

@include('view.name', ['some' => 'data'])

现在在'view.name'中你有变量$ some包含'data'

答案 4 :(得分:0)

很久以前我创建了这个函数,其中变量被传递给多个视图。这是代码

View::composer('admin.layouts.navbar', function($view){
    $view->with('key', 12);
});

您可以将此代码粘贴到routes.php文件

此处布局文件为/resources/views/admin/layout/navbar,变量名称为$key,可在导航栏视图中访问,如

{{$key}}