我在使用Laravel的Former插件时遇到了一些麻烦,无法处理表格和字段。
用例是给定模型的"编辑" -form。
Former::text('title')
->label('Title')
->value( $title );
Former::text('description')
->label('Description')
->value( $description );
规则:
预期行为:
加载修改表单时,我希望表单在字段中显示$title
和$description
的值。
每次提交包含无效字段值的表单时,我都希望提交的值显示在字段中,而不是$title
和$description
的值。
问题:
仅在提交非空字符串时才有效!
提交空字符串时,就像前者处理它一样,即使已经提交了字段,因此使用$title
或$description
给出的值代替。
我认为Former能够做到这一点" smart",并且仅当发布的数据不包含该字段时才取value($variable)
值。但似乎Former在提交为空时也采用了变量值。
为什么这是一个问题?
想象一下,您编辑了这两个字段,并且实际上想要更改title
并完全删除description
,这根据规则有效。然后,由于您输入的title
太短,验证没有通过,而title
会将新的(太短)title
作为字段值,而description
} value将回退到$description
变量的值,而不是显示已发布的空字段。
感觉$_POST['description'] = ""
被视为$_POST['description'] = null
或not set
- 即使空字段是帖子的一部分。
答案 0 :(得分:0)
在你看来
//replace
Former::text('title')
->label('Title')
->value( $title );
//with
Former::text('title')
->label('Title')
......并在您的控制器中
//add
Former::populate($model);
$ model beeing有问题的模型:) $ model-> title必须存在并且与原始代码中的$ title具有相同的值。
如果您使用 - > value($ somevalue)与Former,则总是会使用$ somevalue。