【发布时间】:2014-11-12 19:16:08
【问题描述】:
目前,criteria BelongsToMany alerts 反之亦然。它们通过数据透视表关联:criteria_id 和 alert_id。
我正在获取所有 Criteria 以及属于经过身份验证的用户的关联 Alerts,例如:
public function getMatches()
{
$matches = Criteria::whereUserId( Auth::id() )
->has('alerts')
->get();
}
这会返回所有相关的结果,而现在,如果用户选择了某个结果,我希望能够显示该结果。这是我目前所拥有的:
控制器
public function getMatchDetails($alert_id, $criteria_id)
{
$matches = Alert::find($alert_id)
->has('criterias')
->where('criteria_id', $criteria_id)
->get();
}
这带来了正确的变量,但是,我收到了一个 MYSQL 错误:
未找到列:1054 'where 子句'中的未知列 'criteria_id'
select * from `alerts` where `alerts`.`deleted_at` is null and
(select count(*) from `criterias` inner join `alert_criteria` on `criterias`.`id` =
`alert_criteria`.`criteria_id` where `alert_criteria`.`alert_id` = `alerts`.`id`)
>= 1 and `criteria_id` = 7)
任何帮助将不胜感激。
【问题讨论】:
-
我对“如果用户选择某个结果”的意思感到困惑。第一个查询没有获取关联关系,它只是检查关系是否存在。
标签: php laravel laravel-4 eloquent pivot-table