Laravel関連クエリのselectと同じピット

 序文:

        Laravelの関連クエリの原理は、まずモデル自体のデータと関連モデルのデータを見つけてから、定義された主キーIDと外部キーIDを介して関連クエリを実行することです。

        したがって、選択時のモデル自身のデータの必須フィールドには、関連付けを定義する主キー ID (またはカスタム関連フィールド) が必要です。同様に、選択時の関連モデルのデータの必須フィールドにも、定義時の外部キーが必要です。アソシエーション ID (またはカスタム関連フィールド)。

したがって、次の書き方ではユーザーフィールドとアバターフィールドをクエリできません。

// 获取评论列表数据,同时返回用户信息和头像信息
$comments = Comments::with(['user' => function($query) {
                $query->with(['avatar' => function($aq) {
                    $aq->select(['url']);
                }])->select(['nickname']);
}])->paginate($request->input('pagesize',10));

以下に置き換えられます

// 获取评论列表数据,同时返回用户信息和头像信息
$comments = Comments::with(['user' => function($query) {
                $query->with(['avatar' => function($aq) {
                    $aq->select(['id','url']);
                }])->select(['id','nickname','avatar_id']);
}])->paginate($request->input('pagesize',10));

おすすめ

転載: blog.csdn.net/qq_27295403/article/details/122598069