Php 拉威尔对关系的雄辩探索是什么?

Php 拉威尔对关系的雄辩探索是什么?,php,mysql,laravel,eloquent,relationship,Php,Mysql,Laravel,Eloquent,Relationship,在经典的RESTAPI方法中,我的应用程序需要检查用户是否与某个帐户相关。我们可以对多个帐户执行操作,因此每个请求都会执行查询。 因为这是我们最常说的问题,所以它的轻松对我的心灵平静很重要 当前查询,使用雄辩的 $user-> accounts()-> where($primaryKey, $id); 不知何故,这两种错误都会产生令人信服的错误 $user-> accounts()-> find ($id); $user-> accounts()-> whe

在经典的RESTAPI方法中,我的应用程序需要检查用户是否与某个帐户相关。我们可以对多个帐户执行操作,因此每个请求都会执行查询。 因为这是我们最常说的问题,所以它的轻松对我的心灵平静很重要

当前查询,使用雄辩的

$user-> accounts()-> where($primaryKey, $id);
不知何故,这两种错误都会产生令人信服的错误

$user-> accounts()-> find ($id);
$user-> accounts()-> where ($primaryKey, $id)->count();
错误: SQLSTATE[23000]:完整性约束冲突:where子句中的1052列“a\u id”不明确SQL:select*from“accounts”内部连接“accounts”上的“users\u accounts”。“a\u id”等于“users\u accounts”。“a\u id”其中的“users\u accounts”。“u id”等于1,而“a\u id”等于1限制1


回到我的问题,有没有比where函数更优雅的解决方案?

如果这是最常用的查询之一,为什么不缓存它

$user->accounts()->where($primaryKey, '=', $id)->remember(60)->get();
上述查询失败,因为两个表中都有同名的列

where 'users_accounts'.'u_id' = 1 and 'a_id' = 1

缓存确实是下一步,为提醒干杯。关于这个查询,这个查询是由Elount生成的,我确实知道它在哪里失败了,但是我质疑为什么Elount会生成一个失败的查询。不过,我必须纠正你的最后一句话;wherecolumn,value是允许的:是的,你是正确的,我总是使用这个参数的显式声明,因为它看起来更清晰。你介意更新你答案的语法部分吗?只是为了不迷惑其他读者。