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

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

问题描述:

I have a table which consists of user data. I have created a view in which I am able to view the user's name and on clicking on the name I am expecting to view the detailed info of that particular user. Could you please guide me through the issue? It would be a great help!

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

From your question your requirement is not clear.
Am replying specifically to this comment of yours :

Yup right. I have a table which consists of user data. I have created a view in which I am able to view the user's name and on clicking on the name I am expecting to view the detailed info the user. Could you please guide me through the issue? It would be a great help.

When the user clicks the hyper link , pass the user-id to the link. Now , write a controller for this route where you get the user details using the user-id and pass it to the view.

You can pass the variable to another view the same you do in your controller.

Let's say you have this method in your controller:

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

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

And in your view:

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

EDIT:

Note that, otherData will be available anyway in your included views. You don't need to pass it around. The above example is useful if you want to use a different alias to your variable.

In your view, where you have your php vars you can use:

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

and now in the 'view.name' you have variable $some contains 'data'

If you want to share a variable between more than one view, you can easily use the share method on the facade. There is actually a whole section in the docs about this:

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

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

If instead you want to remember a certain value to show on the next page, you can always use the session to "flash" data. The documentation has an article about that too:

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

Please note that you will need to re-inject these session data into the view, possibly by using the above "share" method on the View facade.

Its a long time ago I have created this functionality in which the variable is passed to multiple views.. Here is the code

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

You can paste this code inside routes.php file

Here layout file is /resources/views/admin/layout/navbar and variable name is $key and it can be accessed in navbar view like

{{$key}}