将可选参数传递给 Laravel 表单

Pass optional parameters to Laravel Form

这是我的 partials/textfield.blade.php 片段的摘录:

{{ Form::text('mylabel', 'mytext', ['class' =>'form-control']) }}

我知道可以包含此代码段并将一些变量传递给它:

@INCLUDE('partials/textfield', ['required' => 'required', 'autofocus' => 'autofocus'])

我希望能够使用 可选 参数调用代码段 requiredautofocusreadonly

我现在的问题是:如何将这些变量传递给表单元素?

我试过了:

{{ Form::text('label',null,
    [
    'class' =>'form-control', 
    'required'  => (isset($required)  ? $required  : 'false'),
    'readonly'  => (isset($readonly)  ? $readonly  : 'false'), 
    'autofocus' => (isset($autofocus) ? $autofocus : 'false') 
    ])
}}

这导致 HTML 代码如 ... readonly="false"...。但是,readonly 的存在会导致 Internet 浏览器将字段呈现为只读。

'false' 替换为 '' 也无济于事。有谁知道如何将这些可选参数传递给代码段?

非常感谢任何帮助!

{{ Form::text('label',null,
    [
    'class' =>'form-control', 
    'required'  => (isset($required)  ? 'true'  : 'false'),
    'readonly'  => (isset($readonly)  ? 'true'  : 'false'), 
    'autofocus' => (isset($autofocus) ? 'true' : 'false') 
    ])
}}

您可以将这些值设置为 true 或 false。

你会得到结果的。

另一种方式是

@INCLUDE('partials/textfield', [ 'options' => [   'class' =>'form-control', 'required' => 'required', 'autofocus' => 'autofocus']]);

现在您可以简单地

{{ Form::text('label',null,
    $options
    )
}}

通过这种方式,您不必检查每个字段。

{!! Form::input('text', 'email', null, [$required ? 'required' : '', $readonly ? 'readonly' : '', $autofocus? 'autofocus' : '']) !!}

不得不稍微更改一下我的答案。我习惯了kris/laravel-form-builder。我试过了,应该可以。