我想在列表中创建新任务。网址为“ lists / 1 / newTask”。
Tasks.php(模型)
class Tasks extends Model {
protected $fillable=[
'description'
];
public function lists()
{
return $this->belongsTo('App\Lists');
}
}
Lists.php(模型)
class Lists extends Model {
protected $fillable=[
'name'
];
public function tasks()
{
return $this->hasMany('App\Tasks');
}
}
任务表
public function up()
{
Schema::create('tasks', function (Blueprint $table) {
$table->increments('id');
$table->string('description');
$table->integer('list_id')->unsigned();
$table->timestamps();
$table->foreign('list_id')
->references('id')
->on('lists')
->onDelete('cascade');
});
}
因此,现在我尝试存储表单中的所有数据并创建任务。我不知道如何使用关系以及如何使用list_id = $ id(来自url)存储NewTask
我试图像这样手动将id存储在list_id中,但是它不起作用
public function store(CreateTasksRequest $request, $id)
{
$listID = Lists::findorfail($id);
DB::table('tasks')->insert([
['description' => $request, 'list_id' => $listID]
]);
}
我是新手,所以我肯定做错了什么。如果数据存储可以自动而不是手动进行,那也很好。
我的路线
Route::get('lists/{id}/newTask', 'TasksController@create');
Route::post('lists/{id}', 'TasksController@store');
考虑这种更优雅的方法:(来自http://laravel.com/docs/4.2/eloquent#inserting-related-models)
$task = new Task(array('description' => $request->input('description')));
$list = Lists::find($id);
$task = $list->tasks()->save($task);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句