我有一个文章表和一个喜欢的表。我试图保存用户喜欢稍后在仪表板上返回给他们的所有文章的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');
答案 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 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存储到喜欢的表中...