【发布时间】:2017-03-16 22:02:10
【问题描述】:
我需要返回任务列表和每个任务的当前用户进度。为此,我创造了以下雄辩的表达方式:
return DailyMission::with('userProgress')->get();
在我的 DailyMission 模型(daily_missions 表)中使用以下关系:
public function userProgress() {
return $this->hasOne(UserDailyMission::class,'mission_id');
}
问题是它不是用户指定的,这意味着我在我的数据库中获得了随机用户的第一个进度。
我试着把表达式改成这样:
return DailyMission::with('userProgress')
->where('user_daily_missions.user_id',$user->id)
->get();
但我收到以下错误:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'user_daily_missions.user_id' in 'where clause
用户进度使用以下结构存储在user_daily_missions 表中:
id | user_id | mission_id | current_progress
任何想法如何输出当前用户而不是随机用户的进度?结构有什么问题吗?
【问题讨论】:
-
尝试使用
with(['userProgress' => function($q) use ($user){ $q->where('user_id',$user->id);}])而不是->where('user_daily_missions.user_id',$user->id) -
你的函数中有 $user 吗?
-
@NarendrasinghSisodia 谢谢!太棒了!
标签: laravel laravel-5 eloquent