重用更新并创建表单Laravel 5.1

时间:2015-10-22 03:33:10

标签: php forms laravel

我正在尝试仅使用一个表单来创建和更新表单。这是一个简单的表单,我只使用HTML。不是df$ID1 <- as.character(factor(df$ID1, levels=id$ID, labels=id$NAME)) 集合。但是,我不确定最好的设置。因为在我的编辑表单中,我有一个以Eloquent模型形式调用的值,它位于一个变量中。我还需要使用FORM方法来检索旧输入。使用FORM集合会更容易吗?或者没有它可以实现这一目标吗?

我的表单部分:

old

创建的相关表单元素:

<form role="form" method="POST" action="{{ action('\Modules\Pages\Http\Controllers\DashboardController@postEdit', ['id' => $page->id]) }}" class="uk-form">
    @include('pages::cms.partials.form.error')
    @include('pages::cms.partials.form.form')
</form>

更新的相关表单元素

<input type="text" placeholder="URL" name="url" value="{{ old('url') }}">

所以,基本上我正试图找到结合这些的最佳方法。如果我只是尝试添加<input type="text" placeholder="URL" name="url" disabled value="{{ $page->slug }}"> ,它将在更新表单上工作,但不适用于创建表单,因为该变量不存在,因为它只是从getUpdate方法调用。

1 个答案:

答案 0 :(得分:0)

这是我使用laravelcollective Form包解决此问题的方法:

检查是否存在模型 - 注意:您可以使用除$model 之外的其他变量名称。如果它存在,请使用Form::model()方法,以便表单的输入填充模型的属性(如果您提交表单并遇到验证错误,则输入旧输入)。

@if (isset($model))
    {!! Form::model($model, ['route' => ['my.update.route', $model->id], 'method' => 'put']) !!}
@else
    {!! Form::open(['route' => 'my.store.route']) !!}
@endif

因此,在您的控制器中,如果您想要return view('my.input.view');create如果您想要return view('my.input.view', compact('model));,则可以执行:update而不传递数据。< / p>

当然,您需要使用Form包的输入法:{!! Form::text('property_name') !!}等,才能让群体发挥作用。

非常好。它甚至可以填充相关模型,只要它们已经加载:{!! Form::text('related_model[related_model_property]') !!}