我正在尝试仅使用一个表单来创建和更新表单。这是一个简单的表单,我只使用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方法调用。
答案 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]') !!}