Laravel 拉维API条件关系
我正在构建一个Laravel应用程序,人们可以在其中阅读这本书,也喜欢这本书 图书资源 我想在用户模型中设置用户的include Favorited Book,以便在用户有Favorited和false时显示true 通过这样做,我能够在一本书的模型中做到这一点Laravel 拉维API条件关系,laravel,Laravel,我正在构建一个Laravel应用程序,人们可以在其中阅读这本书,也喜欢这本书 图书资源 我想在用户模型中设置用户的include Favorited Book,以便在用户有Favorited和false时显示true 通过这样做,我能够在一本书的模型中做到这一点 public function showapi(Request $request, $book) { //$book = Book::find($book); $book = new BookResource(Boo
public function showapi(Request $request, $book)
{
//$book = Book::find($book);
$book = new BookResource(Book::find($book));
$Fav = Favorite::where('book_id', $book->id)->where('user_id', $request->user_id)->exists();
if($Fav) {
return response()->json([
'book' => $book,
'Favorited' => $Fav,
]
);
}
else
return response()->json([
'book' => $book,
'Favorited' => $Fav,
]
);
}
此集合被偏爱为真或假
但我想在寄送藏书时表现出我的好感
我已经尝试通过这样做来使用LaravelAPI资源关系
public function showapi(Request $request, $book)
{
//$book = Book::find($book);
$book = new BookResource(Book::find($book));
$Fav = Favorite::where('book_id', $book->id)->where('user_id', $request->user_id)->exists();
if($Fav) {
return response()->json([
'book' => $book,
'Favorited' => $Fav,
]
);
}
else
return response()->json([
'book' => $book,
'Favorited' => $Fav,
]
);
我在使用邮递员进行测试时出错
首先对文件中的字符串调用成员函数
这是我的方法
public function indexapi()
{
return BookResource::collection(Book::with('author')->Paginate(16));
}
这就是我的关系
用户模型
图书模型
**喜爱的模型**
public function book ()
{
return $this->belongsTo(Book::class);
}
public function author()
{
return $this->belongsTo(Author::class);
}
public function user()
{
return $this->belongsTo(User::class);
}
您的书籍和用户之间存在多对多关系。这些对存储在中间表book_user中。只需向中间表book\u用户添加一个布尔列收藏夹 您可以这样访问它:
$user = App\User::find(1);
foreach ($user->books as $book) {
echo $book->pivot->favorite;
}
阅读有关中间表的更多信息
您可能还想创建一个表示您最喜欢的模型的模型。我不知道这是否是您问题的解决方案,但只想编辑您的模型,因为您在“模型”一书中遗漏了一部分 用户模型 图书模型 你最喜欢的班级
用户和书籍之间的关系是什么?是多对多吗?用户和书籍之间没有关系。我已经更新了我的问题对不起图书模型上的那个小错误,我已经编辑过了
public function favorites()
{
return $this->hasMany(Favorite::class);
}
public function book ()
{
return $this->belongsTo(Book::class);
}
public function author()
{
return $this->belongsTo(Author::class);
}
public function user()
{
return $this->belongsTo(User::class);
}
$user = App\User::find(1);
foreach ($user->books as $book) {
echo $book->pivot->favorite;
}
public function favorites(){
return $this->hasMany(Favorite::class);
}
public function books()
{
return $this->belongsToMany(Book::class);
}
public function favorites()
{
return $this->hasMany(Favorite::class);
}
public function User()
{
return $this->hasOne(User::class);
}
public function book ()
{
return $this->belongsTo(Book::class);
}
public function author()
{
return $this->belongsTo(Author::class);
}
public function user()
{
return $this->belongsTo(User::class);
}