L5使用相同的表格进行存储和更新

时间:2015-06-12 12:41:44

标签: php forms laravel laravel-5

作为一个L5新手,我有一个表格,我正在使用它来编辑数据。我有像上一个,下一个,第一个和最后一个的链接,以获取记录和编辑它们。我正在使用表单模型绑定来查看表单上的值。我的目的是使用相同的表单来添加新记录,但由于我使用表单模型绑定,所有输入元素都会显示其值。如何使用相同的表单添加新记录?任何帮助将不胜感激

{!! Form::model($vehicle,['url' => '/pages/store']) !!}                                   
    <table style="width:650px; margin-left: 4px;" >
        <tbody>
            <tr>
                <td>ID</td>
                <td>Model</td>
                <td>Brand</td>
                <td>License Plate</td>
            </tr>
            <tr>
                <td>{!! Form::text('id' ,null , ['readonly'], ['class' =>'textboxlong form-control', 'style'=>'height:23px;']) !!}</td>
                <td>{!! Form::text('model' ,null ,['class' =>'textboxlong form-control', 'style'=>'height:23px;']) !!}</td>
                <td>
                    {!! Form::select('brand', $brands, null, ['id'=>'brandBox', 'style' => 'width:150px;']) !!}
                </td>
                <td>{!! Form::text('licenseplate' ,null ,['class' =>'textboxlong form-control', 'style'=>'height:23px;']) !!}</td>
            </tr>
        </tbody>
    </table>
    <div id="buttoncontainer">
        <a class="btn btn-default" href="{{ URL::to( 'pages/vehicleprocess/' . $first -> id ) }}"><<</a>&nbsp;
        @if($previous)
            <a class="btn btn-default" href="{{ URL::to( 'pages/vehicleprocess/' . $previous ) }}">PREVIOUS</a>&nbsp;
        @endif
        @if($next)
        <a class="btn btn-default" href="{{ URL::to( 'pages/vehicleprocess/' . $next ) }}">NEXT</a>&nbsp;
        @endif
        <a class="btn btn-default" href="{{ URL::to( 'pages/vehicleprocess/' . $last -> id ) }}">>></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <a class="btn btn-default" id="add">EKLE</a>&nbsp;
        {!! Form::submit('EDIT', array('class'=>'btn btn-primary')) !!}&nbsp;
        {!! Form::submit('NEW RECORD', array('class'=>'btn btn-primary')) !!}&nbsp;
    </div>
{!! Form::close() !!}

3 个答案:

答案 0 :(得分:1)

只需传入一个空模型,就可以使用相同的表单进行创建。

$vehicle = new Vehicle();

Form::model($vehicle);

答案 1 :(得分:0)

您要做的是将表单中的所有内容都插入到另一个.blade.php文件中。我通常称它们为form_partial.blade.php

然后你会有2个额外的刀片文件,一个用于存储,一个用于编辑。在商店中,您可以使用Form::open()然后使用@include('form_partial'),然后使用Form::close()

在您的编辑文件中,执行相同操作,除非您使用Form::model($model)然后使用@include('form_partial'),然后使用Form::close()

答案 2 :(得分:0)

您也可以使用@if条件,例如:

@if(isset($vehicle))
    {!! Form::model($vehicle, ['url' => '/pages/'.$vehicle->id, 'method' => 'PATCH']) !!}
@else
    {!! Form::open(['url' => '/pages/store']) !!}
@endif

因此,当您加载表单进行编辑时,您会传递$vehicle变量以便使用Form::model,否则Form::open将与$vehicle变量一起使用加载表单以创建新的Vehicle