尝试将变量传递给视图时出现Laravel 5.1错误

时间:2015-12-09 14:55:30

标签: php laravel laravel-5

我有以下代码片段,我试图将email对象传递给我的视图。

return response()->view('admin.editEmail')->with('email', $this->template->findTemplateById($id));

这会导致以下错误:

  

调用未定义的方法Illuminate \ Http \ Response :: with()

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

只需将其作为view()中的第二个参数传递:

return response()->view('admin.editEmail', $email);

答案 1 :(得分:1)

Here are the docs for view->with()。您必须为您发送的每个变量传递一个键和一个值。如果您有多个,则需要发送一组keys =>值。 compact对此很有用。

$template = $this->template->findTemplateById($id)

response()->view('admin.editEmail')->with(compact('email', 'template'));

答案 2 :(得分:0)

有很多不同的方法可以做到这一点。

我更喜欢使用这个,因为您可以轻松添加新变量 通过这种方式,它也可以在控制器和视图中使用不同的变量名称。

return view('admin.editEmail', [
    'email' => $adminEmail,
    'anotherVar' => $someValue,
]);

在此示例中,控制器中的电子邮件存储在$adminEmail中,但在模板中,我们会将其作为$email收到。

使用compact,您需要在控制器中使用与视图中相同的变量名称。