Laravel – 通过多个variables来查看
我有这个网站,其中一个页面创build了一个简单的数据库中的人名单。 我需要添加一个特定的人到我可以访问的variables。
如何修改return $view->with('persons', $persons);
行也通过$毫秒variables的视图?
function view($view) { $ms = Person::where('name', 'Foo Bar'); $persons = Person::order_by('list_order', 'ASC')->get(); return $view->with('persons', $persons); }
只要把它作为一个数组传递:
$data = array( 'name' => 'Raphael', 'age' => 18, 'email' => 'r.mobis@rmobis.com' ); return View::make('user')->with($data);
或者像@Antonio提到的那样链接它们。
这是你如何做到的:
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')); }
将多个variables传递给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'));