Laravel - Pass more than one variable to view Laravel - Pass more than one variable to view laravel laravel

Laravel - Pass more than one variable to view


Just pass it as an array:

$data = [    'name'  => 'Raphael',    'age'   => 22,    'email' => 'r.mobis@rmobis.com'];return View::make('user')->with($data);

Or chain them, like @Antonio mentioned.


This is how you do it:

function view($view){    $ms = Person::where('name', '=', 'Foo Bar')->first();    $persons = Person::order_by('list_order', 'ASC')->get();    return $view->with('persons', $persons)->with('ms', $ms);}

You can also use compact():

function view($view){    $ms = Person::where('name', '=', 'Foo Bar')->first();    $persons = Person::order_by('list_order', 'ASC')->get();    return $view->with(compact('persons', 'ms'));}

Or do it in one line:

function view($view){    return $view            ->with('ms', Person::where('name', '=', 'Foo Bar')->first())            ->with('persons', Person::order_by('list_order', 'ASC')->get());}

Or even send it as an array:

function view($view){    $ms = Person::where('name', '=', 'Foo Bar')->first();    $persons = Person::order_by('list_order', 'ASC')->get();    return $view->with('data', ['ms' => $ms, 'persons' => $persons]));}

But, in this case, you would have to access them this way:

{{ $data['ms'] }}


Use compact

function view($view){    $ms = Person::where('name', '=', 'Foo Bar')->first();    $persons = Person::order_by('list_order', 'ASC')->get();    return View::make('users', compact('ms','persons'));}