我创建了一个创建表单create.blade.php
和一个编辑表单edit.blade.php
- 两个表单字段都相同。
当我在create.blade.php
中添加新字段时非常烦人,我还需要在edit.blade.php
中添加字段。
如何合并到1个刀片文件中,以便它可以同时用于创建和编辑(通过db查看)。
例如在create.blade.php
我有这个:
<label>Name</label>
<input type="text" name="name" value="{{ old('name') }}">
@if ($errors->has('name'))
<label class="error">{{ $errors->first('name') }}</label>
@endif
在edit.blade.php
<label>Name</label>
<input type="text" name="name" value="{{ old('name', $category->name) }}">
@if ($errors->has('name'))
<label class="error">{{ $errors->first('name') }}</label>
@endif
答案 0 :(得分:1)
检查模型是否存在:
{{ old('name', empty($category) ? '' : $category->name) }}
此外,您可能需要检查它是否创建或更新表单并相应更改表单网址:
{{ route(empty($category) ? 'article.create' : 'article.update' ) }}
答案 1 :(得分:0)
<input type="text" name="name" value="{{ $category ? $category->name : old('name') }}">
答案 2 :(得分:0)
您可以为表单使用部分(较小模板的精美名称),并将该部分数据传递给您所需的数据。
使用预订系统的示例:
在您的创建刀片文件中:
@include('bookings._forms', ['booking' => new \App\Booking])
和编辑文件(在控制器上检索$ booking):
@include('bookings._forms', ['booking' => $booking])
然后你的表单部分看起来像这样:
<label for="name" class="label">Name</label>
<input type="text"
class="input"
name="name" id="name"
placeholder="Guest name"
value="{{ old('name') ?? $booking->name }}">
这种方法的好处在于,现在你只能在部分上拥有你的表单元素,只需要在添加字段时更新1个文件,并且实际标记保留在你的创建和编辑模板上,所以不用担心那个。
希望明白并且有所帮助。