laravel新手,并遵循他们的中间任务列表来尝试掌握概念。
我在CLI中做了一个php手工迁移,在任务表中添加了两个新列,第一列是DATE,名为due&第二列是名为description的TEXT,我也添加到了视图中,所以现在看起来像这个
<form action="/task" method="POST" class="form-horizontal">
{{ csrf_field() }}
<!-- Task Name -->
<div class="form-group">
<label for="task-name" class="col-sm-1 control-label">Task</label>
<div class="col-sm-3">
<input type="text" name="name" id="task-name" class="form-control" value="{{ old('task') }}">
</div>
<label for="task-due" class="col-sm-2 control-label">Due Date</label>
<div class="col-sm-4">
<input type="date" name="due_date" id="task-due" class="form-control" value="">
</div>
</div>
<!-- Add Task Button -->
<div class="form-group">
<label for="task-due" class="col-sm-1 control-label">Description</label>
<div class="col-sm-9">
<input type="text" name="description" id="task-description" class="form-control" value="">
</div>
<div class="col-sm-2">
<button type="submit" class="btn btn-default">
<i class="fa fa-btn fa-plus"></i>Add Task
</button>
</div>
</div>
</form>
只是调用了一些额外的输入,due_date&我想在数据库的帖子中填写的描述。
控制器:
public function store(Request $request)
{
$this->validate($request, [
'name' => 'required|max:255',
]);
$request->user()->tasks()->create([
'name' => $request->name,
'due'=>$request->due_date,
'description'=>$request->description,
]);
return redirect('/tasks');
}
我不确定我是否写对了,因为当我发布时,任务的名称确实进入了数据库,但到期列为0000-00-00,列描述为空。
我是否正确调用了控制器中的字段?我尝试过交换名称,但我认为$Request
变量包含表单数据。
欢迎所有帮助和解释。
您应该确保您的Task
模型具有name
、due
和description
的$fillable
属性。现在您可能只有name
,所以其他值由默认值填充,而不是由输入中的值填充
找到解决方案
我的错是没有把这一页读透。
protected $fillable = ['name','due','description'];
我忘了增加模型中的$fillable变量集,所以create()方法只将数据放在中的$fillable中
为浪费任何人的时间道歉