在laravel 5中查询

里纳德·古德里克(Rinald Gudrik)

我想在列表中创建新任务。网址为“ 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');
阿玛尔纳人(Amarnasan)

考虑这种更优雅的方法:(来自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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章