如何在Laravel 5.2中正确地将数据传递/访问到控制器


How to pass/access data correctly to controller in Laravel 5.2

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模型具有nameduedescription$fillable属性。现在您可能只有name,所以其他值由默认值填充,而不是由输入中的值填充

找到解决方案

我的错是没有把这一页读透。

 protected $fillable = ['name','due','description'];

我忘了增加模型中的$fillable变量集,所以create()方法只将数据放在中的$fillable中

为浪费任何人的时间道歉