Php 是否将创建和编辑刀片文件合并到一个文件?

Php 是否将创建和编辑刀片文件合并到一个文件?,php,laravel,laravel-5,laravel-5.3,Php,Laravel,Laravel 5,Laravel 5.3,我已经创建了一个创建表单create.blade.php和一个编辑表单edit.blade.php——两个表单字段都是相同的 当我在create.blade.php中添加新字段时,这很烦人,我还需要在edit.blade.php中添加字段 我如何将它合并到一个刀片文件中,使其能够以创建和编辑(通过db查看)的方式工作 例如,在create.blade.php中,我有: <label>Name</label> <input type="text" name="name

我已经创建了一个创建表单
create.blade.php
和一个编辑表单
edit.blade.php
——两个表单字段都是相同的

当我在
create.blade.php
中添加新字段时,这很烦人,我还需要在
edit.blade.php
中添加字段

我如何将它合并到一个刀片文件中,使其能够以创建和编辑(通过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

只需检查模型是否存在:

{{ old('name', empty($category) ? '' : $category->name) }}
此外,您可能需要检查是否创建或更新表单,并相应地更改表单url:

{{ route(empty($category) ? 'article.create' : 'article.update' ) }}

您可以为表单使用部分(较小模板的别致名称),并传递所需的部分数据

以预订系统为例:

在创建刀片文件中:

@include('bookings._forms', ['booking' => new \App\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个文件,而实际标记保留在您的创建和编辑模板上,因此也不用担心这一点


希望这是清楚的,并且有帮助。

有没有一种方法可以像助手方法一样创建
{{old('name',empty($category)?':$category->name)}
?类似于
populate('name','category->name')
或类似的东西?当然,为什么不呢?请检查此答案,尽管此代码可能会解决此问题,但添加解释有助于op了解其工作原理。
@include('bookings._forms', ['booking' => new \App\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 }}">