将信息传递给Laravel中数据库中的表单

时间:2017-01-14 15:43:16

标签: php laravel

为了使用数据库中的信息填充表单,我执行以下操作:

@if($parameter_passed_in_the_controller)
<input type="text" value=@($parameter_passed_in_the_controller)></input>
@else
<input type="text" value=""></input>
@endif

虽然这有效,但我想知道是否有其他方法可以用较为陈旧的方式进行,或者这实际上是否是正确的方法。

3 个答案:

答案 0 :(得分:2)

我通常做的是

@if($parameter_passed_in_the_controller)
<input type="text" value={{ $parameter_passed_in_the_controller }}></input>
@else
<input type="text" value=""></input>
@endif

答案 1 :(得分:1)

如果给输入的值很大,那么这是正确的方法。

但是如果你传递变量或请求,那么你可以使用另一种方式 -

SELECT * 
FROM mytable 
WHERE a=X  OR (b=Y AND a!=X);

<input type="text" value={{ $parameter_passed_in_the_controller ? 'echo if it is true' : 'echo if it is false' }}></input> 结束if语句,?结束其他

答案 2 :(得分:1)

如果您正在进行某种CRUD,或者无论如何从数据库中获取模型,您都可以使用“表单模型绑定”。

简短教程here

如教程中所述,您使用laravelcollective库,然后以这种方式创建表单

{!! Form::model($yourModel, ['action' => 'YourController@yourMethod']) !!}

    //here you can create fields like so
    <div class="form-group">
      {!! Form::label('field_name', 'Field label') !!}
      {!! Form::text('field_name', '', ['class' => 'form-control']) !!}
    </div>

{!! Form::close() !!}

我喜欢这种方法的方法是,在验证失败等情况下,它还会使用“旧”值填写表单。