我有以下代码片段,我试图将email
对象传递给我的视图。
return response()->view('admin.editEmail')->with('email', $this->template->findTemplateById($id));
这会导致以下错误:
调用未定义的方法Illuminate \ Http \ Response :: with()
我该如何解决这个问题?
答案 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,您需要在控制器中使用与视图中相同的变量名称。