laravel得到文章ID

时间:2015-07-20 10:28:59

标签: php mysql laravel

我有一个文章表和一个喜欢的表。我试图保存用户喜欢稍后在仪表板上返回给他们的所有文章的ID。我如何获取在articles表上创建的id并将其添加到article_id下的likes表中?

public function store()
{
    $request = Request::all();


    $likes = new like();
    $likes ->article_id = Auth::article()->id;
    $likes->user_id =   Auth::user()->id;
    $name = Auth::user()->name;
    $likes->save();

    return redirect('article');



}

   $table->foreign('article_id')
            ->references('id')
            ->on('articles');

3 个答案:

答案 0 :(得分:3)

似乎你的大部分代码都错了。根据您提供的信息,我至少会得到以下信息:

  • 文章模型,所以你可以这样做:
    • $article = Article::find($id);其中$id是文章的ID
    • $articleLikes = $article->likes();其中定义了likes() 文章模型为:

public function likes() { return Like::where('article_id', $this->id)->get(); }

  • 和模特一样,你可以做到
    • $like = new Like;
    • $like->user_id = Auth::user()->id;
    • $like->article_id = $article->id;
    • $like->save();
  • 文章控制器,您可以:
    • 显示所有文章(通过返回包含所有文章的索引视图)
      • public function index()
    • 创建文章(通过返回创建文章视图)
      • public function create()
    • 显示文章(通过返回展示文章视图)
      • public function show($id)其中$id是文章的ID
    • 编辑文章(通过返回编辑文章视图)
      • public function edit($id)其中$id是文章的ID
    • 存储文章(通过在DB中插入文章)
      • public function store(Request $request)其中$request是POST数据
    • 更新文章(通过更新数据库中的文章)
      • public function update(Request $request)其中$request是POST数据
    • 销毁文章(通过删除数据库中的文章)
      • public function destroy($id)其中$id是文章的ID

这是一个很好的视频教程系列,可以帮助您开始使用Laravel 5:https://laracasts.com/series/laravel-5-fundamentals

编辑:更多信息

如何获取用户喜欢的所有文章ID:

$userId = Auth::user()->id;
$likes = Like::where(user_id, $userId)->get();

$articleIds = new \Illuminate\Database\Eloquent\Collection;
foreach($likes as $like) {
  $articleIds.add($like->article_id);
}

// Now $articleIds should contain all the IDs of articles 
// that the currently logged in user has liked.

答案 1 :(得分:1)

大部分代码都错了。

所以如果你想创建一篇文章:

$Article = new Article();
$Article->title = Request::input('title');
$Article->contents = Request::input('content');
$Article->save();

如果您想使用Like模型在likes表中创建记录:

$Like = new Like();
$Like->article_id = $Article->id;
$Like->user_id = Auth::user()->id; // of course if You're using Auth
$Like->save();

答案 2 :(得分:0)

当完成Artical的添加时,只需获取最后一个插入ID并将其存储到like表中。

像这样的东西

$art = new Article();
$art->name = "Test";
$art->save();

在上面添加以下行...例如类似

$art = new Article();
$art->name = "Test";
$art->save();
$artId = $art->id;

$art->id将获得文章的最后一个插入ID,现在您可以将该ID存储到喜欢的表中...