【发布时间】:2016-01-11 19:38:05
【问题描述】:
我有 3 个模型
User
Pick
Schedule
我正在尝试执行以下操作
$picksWhereGameStarted = User::find($user->id)
->picks()
->where('week', $currentWeek)
->first()
->schedule()
->where('gameTime', '<', Carbon::now())
->get();
此代码仅返回集合内的一个数组。如果有超过 1 个结果,我希望它返回超过 1 个数组。
我可以将->first() 替换为允许我返回超过 1 个结果的其他内容吗?
如果不是,我该如何设置我的模型关系以使其正常工作。
我的模型目前设置如下。
用户模型
public function picks()
{
return $this->hasMany('App\Pick');
}
调度模型
public function picks()
{
return $this->hasMany('App\Pick');
}
选择模型
public function user()
{
return $this->belongsTo('App\User');
}
public function schedule()
{
return $this->belongsTo('App\Schedule');
}
【问题讨论】:
-
你的变量是
$picksWhereGameStarted,所以你想得到Picks?在您的代码中,您试图获取Users。请澄清。 -
我正在尝试获取
Picks。我正在尝试做这样的事情。从User获取所有Picks,x id 是游戏开始的地方。因此,在users table中查找id列然后获取所有选择,然后在schedules table中查找gameTime列以查看游戏是否已经开始。
标签: php laravel eloquent relationship laravel-5.1