我想with查询出来的值和外面的同级
时间: 2024-03-09 15:50:57 浏览: 9
如果你想将 with 方法中查询出来的关联模型属性提升到查询结果的同一级,可以使用 Eloquent 的 `join` 方法和 SQL 的连接查询来实现。
具体来说,我们可以使用 `join` 方法将关联模型的表和主模型的表连接起来,并在查询语句中使用 `select` 方法来指定需要查询的列,例如:
```php
$users = User::join('jobs', 'users.job_id', '=', 'jobs.id')
->leftJoin('advisers', 'users.id', '=', 'advisers.user_id')
->select('users.*', 'jobs.name as job_name', 'advisers.framework_name')
->get();
```
这个例子中,我们使用 `join` 方法将 `users` 和 `jobs` 表连接起来,并使用 `select` 方法来指定查询结果中需要包含的列,其中 `jobs.name` 的值被提升到了和 `users` 表的同一级,并且命名为 `job_name`。然后,我们使用 `leftJoin` 方法将 `users` 表和 `advisers` 表连接起来,并在查询语句中使用 `select` 方法来查询顾问的 `framework_name` 属性。最后,我们使用 `get` 方法获取查询结果。
需要注意的是,使用连接查询可能会导致查询效率降低,因为需要执行多个表之间的连接操作。如果关联模型的属性值数量较多,或者查询结果集较大,建议使用 with 方法来预加载关联模型,并将查询结果中的属性值提升到上一级。