搜尋

首頁  >  問答  >  主體

Laravel中的model.php檔案中查詢的存取權限

我的 User.php 中有一個關係和一個函數;

class User extends Model
{
    public function children()
    {
        return $this->hasMany(self::class, 'level1_user_id')
            ->select(['id', 'first_name', 'last_name', 'level1_user_id']);
    }

    public function grandchildren()
    {
        return $this->children()->with(['grandchildren']);
    }
}

這是我的controller.php:

public function allChildren()
{
    $user = User::where('id', 3)->with(['grandchildren' =>
        function ($query) {
            $query->where('first_name', 'rose');
        }
    ])->first();
    return $user;
}

當我附加孫子時,它會返回該樹的所有節點; 我想分配一個條件並獲取名稱為“rose”的節點,但我只能為第一級執行此操作;我如何訪問此查詢:

$query->where('first_name', 'rose');

在我的 User.php 中的孫子函數中也可以為其他人設定查詢嗎?

我想做這樣的事情:

class User extends Model
{
    public function children()
    {
        return $this->hasMany(self::class, 'level1_user_id')
            ->select(['id', 'first_name', 'last_name', 'level1_user_id']);
    }

    public function grandchildren(Query $inputQuery)
    {
        return $this->children()->with(['grandchildren' => function ($query) use ($inputQuery) {
        $query->$inputQuery;
    }]);
    }
}

P粉549412038P粉549412038274 天前484

全部回覆(1)我來回復

  • P粉674757114

    P粉6747571142024-02-27 15:27:52

    我認為您正在尋找 hasManyThrough

    hasManyThrough(GrandChildren::class, Children::class);
        }
    }

    回覆
    0
  • 取消回覆