Laravel 中如何在 save 的同时保存 nested resource

最近想通过一个小blog的项目学习laravel,articles和tags是多对多的关系,现在在save的时候遇到了问题,laravel的eloquent怎样才能像active record一样在save article的同时save其所属的tags。我的代码如下:

// Article.php

<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Article extends Model {

  protected $fillable = ['title', 'body'];

  public function tags()
  {
    return $this->belongsToMany('App\Tag', 'article_tags');
  }

}

// ArticlesController.php

//...
public function store(StoreArticleRequest $request)
{
  if ($request->has('article.tags_attributes.value')) {
    $tags_value = $request->input('article.tags_attributes.value');
    $splited_tags_value = explode(',', $tags_value);

    if (count($splited_tags_value) > 0) {
      $tags = [];
      foreach(@$splited_tags_value as $tag_value) {
        $tags[] = Tag::firstOrCreate(['value' => trim($tag_value)]);
      }
    }
  }

  $article = new Article($request->input('article'));

  if ($article->tags()->attach($tags)-save()) {
    retur n redirect('console/articles')->with('success', '发布成功');
  } else {
    return redirect()->back()->withInput();
  }
}
//...

另外,请问laravel有啥相关的书籍或者教程吗?感觉laravel相关的资料比rails还少…

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 1
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!