将可选参数传递给Laravel Form

时间:2018-04-17 10:01:31

标签: php html laravel blade

这是我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') 
    ])
}}

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

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

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

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

不得不改变我的回答。我习惯了kris / laravel-form-b​​uilder。我试过了,应该工作。

答案 1 :(得分:0)

{{ 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
    )
}}
通过这种方式你不必检查每一个领域。