2014-03-19 48 views
0

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

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

当$数据不存在上述错误,所以我:

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

我只是想知道是否有更好的方法来做到这一点?所以在添加模式下不会出现任何值。

回答

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变量)绑定到输入。

0

{{$ data-> title}}你可以使用If条件来达到这个目的已经在几种开发技术中使用了。

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

?>