更新Laravel中的关系模型


Updating relation Model in Laravel

我是Laravel 5的新手。我看了教程"Laravel 5基础",我有一个问题。

<<p> 文章模型/strong>
public function category()
{
    return $this->belongsTo('App'Category');
}
<<p> 类别模型/strong>
public function article()
{
    return $this->hasMany('App'Article');
}

ArticleController

public function create()
{
    $categories = Category::lists('name', 'id');
    return view('admin.article.create', compact('categories'));
}
public function store(ArticleRequest $request)
{
    $article = new Article($request->all());
    $category = Category::find($request->input('categories'));
    $article->category()->associate($category);
    'Auth::user()->article()->save($article);
    return 'Redirect::to('/admin/article');
}
public function edit(Article $article)
{
    $categories = Category::lists('name', 'id');
    return view('admin.article.edit', compact('article', 'categories'));
}
public function update(Article $article, ArticleRequest $request)
{
    $article->update($request->all());
    return redirect('admin/article');
}

如何更新文章模型和相关的类别模型?

你可以这样更新:(原始来源:http://laravel.com/docs/5.0/eloquent#insert-update-delete)

public function update(Article $article, ArticleRequest $request)
{
    $newValues = $request->except('_method', '_token');
    foreach($newValues as $key => $value)
    {
         $article[$key] = $value;
    }
    $article->save();
    return redirect('admin/article');
}

public function update(Article $article, ArticleRequest $request)
{
    $article->title = $request->input('title');
    //all article's table columns = $request->input('corresponding_input_name')
    $article->save();
    return redirect('admin/article');
}

@patricus:

public function update(Article $article, ArticleRequest $request)
{
    $article->fill($request->all());
    $article->save();
    return redirect('admin/article');
}