我想在创建和更新表单中使用相同的表单代码。我正在使用Laravel的Form Helper中的以下Blade功能:
{!! Form::model($MyObject, ['action' => '{{ $action }}']) !!}
如果您看到我在{{ $action }}
参数中回显action
,那么它可以是动态的。但是拉拉维尔抛出了
每当我这样做时UrlGenerator.php第561行中的ErrorException:
Action App \ Http \ Controllers \<?php echo e($ action); ?>没有定义的。 (查看:> /path/to/project/folder/resources/views/baz.blade.php)
错误。如果我尝试执行以下操作:
{!! Form::model($MyObject, ['action' => $action]) !!}
然后输出的Form标签如下所示:
<form method="POST" action="http://mysite.app/mycontroller/%7Bmycontroller%7D" accept-charset="UTF-8">
提交表单会抛出MethodNotAllowed。
这是我的控制器功能的设置方式:
public function create()
{
$view_data = [
'type' => 'Create',
'action' => 'MyController@create',
'my_object' => new MyObject
];
return view('myviews.form', $view_data);
}
public function edit($id)
{
$view_data = [
'type' => 'Edit',
'action' => 'MyController@update',
'my_object' => MyObject::find($id)
];
return view('myviews.form', $view_data);
}
但是Laravel只会抛出错误。我找不到任何方法将变量传递给Blade标记中的参数。这样的事情有可能吗?
答案 0 :(得分:1)
直接使用变量:
{!! Form::model($MyObject, ['action' => $action]) !!}