提交后,Laravel 5.6会填充字段

时间:2018-10-22 12:53:07

标签: php forms laravel-5 laravelcollective

我使用Laravel Collective系统构建表单,并且尝试使用如下页面重新加载后提交的值填充表单域:

{{ Form::text('id', {{ request('id') }} , array('class' => 'form-control')) }}

这将引发此错误:

  

语法错误,意外的'{'

2 个答案:

答案 0 :(得分:0)

old('id')应该从上一个请求返回名为id的输入。

所以在您的情况下:

{{ Form::text('id', old('id') , array('class' => 'form-control')) }}

答案 1 :(得分:0)

问题是您在刀片内部使用刀片:

\/                  \/
{{ Form::text('id', {{ request('id') }} , array('class' => 'form-control')) }}

这显然不被接受。

您必须记住,一旦打开刀片标签{{,刀片会将其转换为:

<?php echo Form::text('id', {{ request('id') }} , array('class' => 'form-control')) ?>

请注意,它不是递归工作的,因此不会翻译第二级刀片标签,并且{是PHP代码中的无效字符。

要解决此问题,您不应(也不必)使用第二级刀片标签:

{{ Form::text('id', request('id'), array('class' => 'form-control')) }}

当然,我假设存在request()函数,否则它将引发错误:Call to undefined function request()


要解决您的问题(而不是错误),您应该使用old()方法而不是request(),因为它使用了Laravel在会话中存储的值。

请注意,这种方法在两种情况下有效:

  • 发生验证错误
  • 手动闪烁字段时

here on Laravel Docs

对此行为进行了描述