填写表单的默认值?

时间:2014-03-19 15:04:22

标签: laravel

我为我的表单使用相同的HTML,有两种模式,添加和编辑。在编辑模式下,值将被填入。

<input type="text" name="title" placeholder="Title" value="{{ $data->title }}">

$ data不存在时的上述错误,所以我:

<input type="text" name="title" placeholder="Title" value="{{ $data->title or '' }}">

我只是想知道有更好的方法吗?因此,在添加模式下,不会显示任何值。

2 个答案:

答案 0 :(得分:0)

更好的方法是使用Laravel提供的FormBuilder。这样,您可以使用表单模型绑定自动填充表单。要分割创建和编辑表单,我通常会创建一个包含我的表单的_form.blade.php文件。然后,我创建了两个视图,一个是create.blade.php和edit.blade.php。在这些观点中,我提出了类似的内容:

// From create.blade.php

{{ Form::open([ 'route' => 'resource_name.store', 'method' => 'POST' ]) }}
    @include('_form')
{{ Form::close() }}



// From edit.blade.php
{{ Form::model($data, [ 'route' => 'resource_name.update', 'method' => 'PUT' ]) }}
    @include('_form')
{{ Form::close() }}



// From _form.blade.php
{{ Form::text('title', null, [ 'placeholder' => 'Title' ]) }}

注意:我在视图名称前添加一个下划线,将其标记为部分,只是我采用的约定

使用此方法时,您可以为创建和编辑重复使用相同的表单,这样可以使其易于维护。

通过对编辑表单使用Form :: model()方法,Laravel将自动将提供的模型(在您的情况下为$ data变量)绑定到输入。

答案 1 :(得分:0)

{{$ data-&gt; title}}您可以使用If条件来实现这一点,已经在几种开发技术中使用过。

<?php if (empty($name)) {
echo ''
}
else {
echo '$data->title';

&GT;