在表单模型绑定表单中,如何在不使用帮助程序的情况下访问变量?

时间:2017-05-02 11:04:39

标签: laravel laravel-5

我正在使用Laravel Collective HTML包使用Form Model Binding构建表单。文档(https://laravelcollective.com/docs/5.2/html#form-model-binding)拥有如何方便地使用模型的值,其值按优先级顺序设置:

  • 会话Flash数据(旧输入)
  • 明确传递值
  • 模型属性数据

这非常有用,因为如果用户更改了多个字段,但其中一个字段未通过验证,那么当您将所有其他字段返回到包含有用消息的表单页面时,您不希望将所有其他字段重置为原始值一堆错误让他们有机会纠正他们的无效输入。

使用Form::labelForm::textForm::select助手可以很好地利用这个可爱的功能,但是如果你只是想直接访问那个方便的变量来做一些事情呢? -领域?

这是我尝试过的......

{{ Form::model($user, array('route' => array('user.update', $user->id))) }}

    {{ Form::label('first_name', 'First Name:', array('class' => 'address')) }}
    {{ Form::text('first_name') }}

    {{ Form::value('first_name') }}      <-- No
    {{ Form::session('first_name') }}    <-- Nope
    {{ Form::input('first_name') }}      <-- Still no
    {{ Form::attribute('first_name') }}  <-- Absolutely not

{{ Form::close() }}

帮助我,我正在寻找的方法是什么?

该文档提示能够获得我想要的东西:https://laravelcollective.com/docs/5.2/html#custom-macros它说“定制”自己的自定义Form类助手称为“宏”是“容易的”,但它实际上并没有告诉你在哪里如果你想要了解更多关于FormBuilder类的信息,你可以编写代码或代码中的代码吗?

1 个答案:

答案 0 :(得分:1)

执行此操作的方法是Form::getValueAttribute('first_name'),并且要了解更多信息的位置是/vendor/laravelcollective/html/src/FormBuilder.php