1. {{Form::model($message,['route' => ['message.update',$message->id]])}}
2. {{Form::open(['route' => ['message.update',$message->id]])}}
以上两行之间有什么区别?
我从控制器返回了$message
。我在视图中呈现的输入是
{!!Form::text("text",isset($message) ? $message->title : NULL,["class" => "form-control"])!!}
它适用于以上两个语句。
答案 0 :(得分:3)
Form::open()
正在打开表单。
Form::model()
是表单模型绑定,用于更新删除操作。当您生成表单元素(如文本输入)时,与字段名称匹配的模型值将自动设置为字段值。因此,例如,对于名为email的文本输入,将用户模型的email属性设置为该值。
source
Form::open()
{!!Form::text("text",isset($message) ? $message->title : NULL,["class" => "form-control"])!!}
如果您绑定表格Form::model()
{!!Form::text("text",null,["class" => "form-control"])!!}
不需要条件或定义它自动设置的任何变量,例如$message->title
。
答案 1 :(得分:0)
Form :: model绑定使您可以将表单与应用程序的模型之一关联,并自动:
a)匹配以模型字段命名的输入
b)如果要编辑,则使用现有模型对象的数据填充表单的字段,并使用现有对象
c)用会话数据重新填充表单(例如,如果您在创建对象失败后重定向以显示验证错误
语法:{{ Form::model($modelInstance, ['route'=>'your route','method'=>'']) }}
Form :: Open即{{ Form::open(['route'=>'your-route']) }}
允许您自动打开带有隐藏的csrf令牌字段附加的新表单,并使用会话数据重新填充表单(例如,如果您重定向到出现故障对象后显示验证错误)创作