我写了这样的form.blade.php:
<div class="form-group">
<label>Start at</label>
<div id="start_date" class="input-group date form_datetime col-md-4" data-date-format="yyyy-mm-dd hh:ii:ss">
<input class="form-control" name="start_at" size="16" type="text" value="{{ $activity->start_at }}">
<span class="input-group-addon"><span class="glyphicon glyphicon-remove"></span></span>
<span class="input-group-addon"><span class="glyphicon glyphicon-th"></span></span>
</div>
</div>
Create和Edit方法都使用视图来显示表单。在Edit方法中,使用$ activity并且一切正常。但是在Create方法中,$ activity为null,因此我在{{ $activity->start_at }}
中有错误。
我知道我可以使用if(!empty($ activity))来防止此错误。但我不想在任何地方使用它。
更好的方法是什么?
答案 0 :(得分:0)
你可以使用这个,
{{ $activity->start_at or '' }}
答案 1 :(得分:0)
我还想重用代码并使用相同的视图来创建或编辑对象。我所做的是将一个全新的对象实例传递给创建视图。这样我的对象就处于初始状态,包括默认值(如果有的话),并且我能够在显示的表单上预填充这些默认值(如果有的话)。它给了我额外的好处:如果在服务器级别验证出现任何问题,用户不会丢失任何数据,我只需要在视图中执行以下操作:
<div class="form-group">
<label for="test_field" class="control-label">Fecha de firma</label>
<input type="text" value="{{ ( !empty($isabi) ? $isabi->fecha_firma : old('fecha_firma')) }}"
name="fecha_firma" id="isabi-fechafirma" class="form-control" placeholder="Este campo es obligatorio">
</div>
这是为了清晰起见而删除了额外功能的创建方法(检查用户是否经过身份验证,将创建的对象链接到用户使用的公司以及其他内容):
public function create()
{
return view('isabis.create', [
"isabi" => new Isabi()
])->with($this->data);
}
我使用$this->data
进行视图配置。希望这会有所帮助。