1 回答

TA贡献1830条经验 获得超3个赞
首先,您必须拥有模型类本身,并正确设置任何关系。从您共享的代码中,我看到了三个不同的模型。通常,您希望每张桌子都有一个模型,但这也有点依赖于桌子。例如,您不需要一个用于数据透视表(但您可以拥有一个)。
class UserProgress extends Eloquent
{
...
}
class FosUser extends Eloquent
{
...
}
class workout extends Eloquent
{
...
}
您可以为类命名任何您喜欢的名称,它们不必与表名匹配(有关详细信息,请参阅文档:https ://laravel.com/docs/5.8/eloquent#eloquent-model-conventions )。
然后将您的关系添加到需要它们的每个模型(https://laravel.com/docs/5.8/eloquent-relationships),然后您就可以开始查询了。它可能看起来像这样:
$result = UserProgress::join('fos_user', 'fos_user.id', '=', 'user_progress.user_id')
->join('workout', 'workout.id', '=', 'user_progress.workout_id')
->whereRaw('...')
...
->where('user_progress.user_id', '=', $user->id)
->get(); // this returns a Collection object
return $result->count(); // This is a Collection method
这只是一个示例,您可以通过多种方式构建 where 子句(where('user_id', '=', $user.id)vswhereUserId($user.id)等),但应该足以让您入门。
此外,对于这个特定的查询,您实际上只需要第一个模型,但最终您可能最终会使用其他两个表的模型。
- 1 回答
- 0 关注
- 113 浏览
添加回答
举报