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 關注
- 132 瀏覽
添加回答
舉報