在laravel

时间:2017-09-19 09:34:50

标签: php laravel

我有一个动作方法,它的体内有多个变量: -

$bus=Bus::all();
$user=User::all();
$employer=employer::all();

将这些变量对象返回到视图的做法是使用像这样的代码

return view('create')->with(compact('bus', $bus))->with(compact('user', $user))->with(compact('employer', $employer));

是否有一种方法或某种方法可以立即返回这些对象而无需所有这些代码,例如

return view('create')->($user,$bus,$emp);

只是我想要的例子。

3 个答案:

答案 0 :(得分:5)

这里你没什么选择。

第一种方法是:

使用with()并明确传递数组:

return view('create')->with('data', [
    'bus' => $bus, 
    'user' => $user,
    'employer' => $employer
]);

使用with()并在compact()中列出您的变量:

return view('create')->with('data', compact('bus','user','employer'));

您可以在视图中访问您的对象,例如带有键'bus','user'和'employer'的关联数组$ data。

另一种方法是:

将数组作为第二个参数传递给view()函数:

return view('create', [
    'bus' => $bus, 
    'user' => $user,
    'employer' => $employer
]);

传递一个compact()函数(这将在幕后的前一个例子中创建一个数组)作为view()函数的第二个参数:

return view('create', compact('bus','user','employer'));

如果您以这种方式使用它,您将在视图中获得三个变量$ bus,$ user和$ employer。

答案 1 :(得分:2)

你可以像这样创建一个数组

$data['bus']=Bus::all();
$data['user']=User::all();
$data['employer']=employer::all();
return view('create',['data'=>$data]);

答案 2 :(得分:1)

你可以用

做很多事情

return view('create', compact('bus', 'user', 'employer'));

或执行上面的$data选项