使用 Laravel Eloquent 的 with() 函数和内部连接

Using Laravel Eloquent's with() function along with inner join

我在尝试将 with() 函数与连接一起使用时遇到问题:

$query = Model::query()->with([
  'relationOne',
  'relationTwo',
  ...
]);

$query->join(DB::raw("(
  select *
  from <models_table>
  where <some_condition>
) as new_model"), 'new_model.id', '=', '<models_table>.id');

$query->paginate($rpp);

paginate($rpp) 调用后,我收到了所有附加了适当关系但没有加入 table(又名 new_model)的项目。有没有办法检索 new_model 以及关系?

请试试下面的代码希望对你有帮助。

$query = Model::query()->with([
  'relationOne',
  'relationTwo',
  ...
])

$query = $query->join(DB::raw("(
  select *
  from <models_table>
  where <some_condition>
) as new_model"), 'new_model.id', '=', '<models_table>.id')

$query = $query->paginate($rpp);

您是否尝试添加 select 语句来强调您想要获取的表格?

$query->join(DB::raw("(
  select *
  from <models_table>
  where <some_condition>
) as new_model"), 'new_model.id', '=', '<models_table>.id')
->select(['<models_table>.*', 'new_model.*']);