Laravel:基于模型创建表单输入


Laravel: Create form input based on model

如何在Laravel中创建一个表单,并让Laravel使用基于模型名称的输入名称数组(如Post[title]、Post[body])创建表单字段。这就是我在Yii做的事情,但不知道在Laravel身上是否可能。一旦这成为可能,我就可以很容易地将输入数据恢复为$post->attributes=$_post['post']。

在Laravel中,有Form模型绑定来创建基于模型的表单,但恐怕没有基于数组的内置创建表单。

例如,当您创建新文章时,您不需要使用模型绑定,您必须只创建一个createForm。我的解决方案是像这样从LaraCollection扩展FormBuilder,true意味着需要输入:

  {!! BsForm::bs_open( 'articles.store' ) !!}
  {!! BsForm::bs_text( 'article.title'    , [ 'label' => 'Article title'    ] , true ) !!}
  {!! BsForm::bs_button( 'success' , 'Save' ) !!}
  {!! BsForm::bs_close() !!}

其中bs_open自动生成如下表单:

<form method='POST' action='http://test.dev/articles' accept-charset='UTF-8'><input type='hidden' name='_token' value='jCetJsAXCKfQTZ1GV9TZfVt3Ch2WlP8lixeN8gYL'>

bs_text生成的引导程序可接受的输入类型文本如下:

<div class='form-group'>
<label for='article_title'>Article title</label>
<input class='form-control' name='article_title' type='text' required>
</div>

bs_button创建了一个很好的引导按钮,非常容易扩展字体很棒的图标检查:

  <button type='submit' class='btn btn-success'><i class='fa fa-check'></i> Save</button>