Laravel – передать несколько переменных для просмотра

У меня есть этот сайт, и одна из его страниц создает простой список людей из базы данных. Мне нужно добавить одного конкретного человека к переменной, к которой я могу получить доступ.

Как изменить return $view->with('persons', $persons); line, чтобы передать переменную $ ms в представление?

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

Related of "Laravel – передать несколько переменных для просмотра"

Просто передайте его как массив:

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

Или цепи их, как @ Антонио упомянул.

Вот как вы это делаете:

 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); } 

Вы также можете использовать 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')); } 

Или сделайте это в одной строке:

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

Или даже отправить его как массив:

 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])); } 

Но в этом случае вам придется обращаться к ним следующим образом:

 {{ $data['ms'] }} 

Использовать компактный

 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')); } 

Передача нескольких переменных в представление Laravel

 //Passing variable to view using compact method $var1=value1; $var2=value2; $var3=value3; return view('viewName', compact('var1','var2','var3')); //Passing variable to view using with Method return view('viewName')->with(['var1'=>value1,'var2'=>value2,'var3'=>'value3']); //Passing variable to view using Associative Array return view('viewName', ['var1'=>value1,'var2'=>value2,'var3'=>value3]); 

Читайте здесь о передаче данных в представления в Laravel

Применилась аналогичная проблема, но если вы не хотите возвращать представление в файле вида, вы можете сделать это:

 return $view->with(compact('myVar1', 'myVar2', ..... , 'myLastVar'));