【问题标题】:Laravel eloquent pivot passing variable to modelLaravel 雄辩的枢轴传递变量到模型
【发布时间】:2018-07-05 00:20:03
【问题描述】:

我在将变量传递给我的 eloquent 模型时遇到问题。我会给你举个例子 数据库:

书:

-id

-名称

用户:

-id

-名称

愿望清单:

-book_id

-user_id

现在当我得到书的记录时。我想检查一下用户是否在愿望清单中有这本书。

我有这样的关系:

本书雄辩的典范:

public function wishList($userId)
{
    return $this->hasOne('App\Model\Pivot\WishList', 'comics_record_id')->where('user_id',$userId);
}

但是当我运行这段代码时,别想了。

图书控制器:

$record = Book:find(1);

$record->wishList(1);

我也尝试在 eloquent 模型中制作二传手。 没有工作:(

谢谢你的帮助,对不起我的英语。

【问题讨论】:

  • 你有没有型号名称WishList??
  • 是的,它与“App\Model\Pivot\WishList”相关的 $table='wish_list'; protected $fillable=['book_id','user_id'];

标签: php mysql laravel model eloquent


【解决方案1】:

首先改变你对这个的关系-

public function wishList()
{
return $this->hasMany('App\Model\Pivot\WishList', 'book_id', 'id');
}

然后你们的关系会是-

$book = Book::with('wishList')->where('id',$book_id)->whereHas('wishList', function($q) use ($user_id){
       $q->where('user_id',$user_id);
})->first();

if($book){
    //show true here
}
else{
    //show false here
 }

【讨论】:

  • 我可以工作,但是什么时候我会尝试收集。我想实现类似 { name: book_name, wishlist : true ( or null,false if is not in his list.) } 我需要的书不仅来自他的列表:(
  • 我做了这样的事情:$user_id=2; $book=Book::find(1); $book->whereDoesntHave('wishList', function($q) use ($user_id){ $q->where('user_id',$user_id); });返回 $book;但不幸的是仍然没有得到结果。
  • 你想要什么??你想要一个用户没有被列入愿望清单的书单吗?或者只是想检查某本书是否被用户列入白名单?
  • 我想要获得 200 条或更多记录的书籍列表。对于每条记录,我想检查用户是否在愿望清单中拥有这本书。它的 2 个步骤用户登录到应用程序然后转到书籍列表并且在书名旁边他有标记,如果他有这个在愿望清单中。
  • 应该可以,但我没有得到任何字段愿望清单。当我尝试此功能或其他此字段时,它就会消失。我想我必须进行原始查询或从 wish_list 获取列表用户书并做出一些陈述。
【解决方案2】:

首先你传递 $userId 并且在 where 子句中你使用 $userID .... undefined variable error here。

【讨论】:

  • sry 我更正了这个。但这仍然不是问题
猜你喜欢
  • 2017-05-24
  • 1970-01-01
  • 2018-05-19
  • 1970-01-01
  • 2020-10-26
  • 2019-07-24
  • 2018-01-10
  • 2021-08-11
  • 1970-01-01
相关资源
最近更新 更多