如何使用 Laravel 的 eloquent 急切加载相同的列名?
How to eager load same column names using Laravel's eloquent?
我 运行 在尝试生成 API 响应时再次回到这个问题
最基本的代码是这样的:
// This works, but its incomplete
Car::with(['user:id,name', 'factory', 'producer'])
// This does not work, ambiguous column names SQL error
Car::with(['user:id,name', 'factory:id,name', 'producer'])
我觉得这是 Eloquent
中的错误或需要改进的地方
好的,我知道了如何快速做到这一点。
首先我发现这段代码有效:
Car::with(['user' => function($q) {
$q->selectRaw(DB::raw("users.id, users.name"));
}, 'factory' => function($q) {
$q->selectRaw(DB::raw("factories.id, factories.name"));
}, 'producer'])
然后我想删除构建器的原始部分,我想知道这是否以类似的方式工作所以我最终得到:
Car::with(['user:users.id,users.name', 'factory:factories.id,factories.name', 'producer'])
很有魅力
我 运行 在尝试生成 API 响应时再次回到这个问题
最基本的代码是这样的:
// This works, but its incomplete
Car::with(['user:id,name', 'factory', 'producer'])
// This does not work, ambiguous column names SQL error
Car::with(['user:id,name', 'factory:id,name', 'producer'])
我觉得这是 Eloquent
中的错误或需要改进的地方好的,我知道了如何快速做到这一点。
首先我发现这段代码有效:
Car::with(['user' => function($q) {
$q->selectRaw(DB::raw("users.id, users.name"));
}, 'factory' => function($q) {
$q->selectRaw(DB::raw("factories.id, factories.name"));
}, 'producer'])
然后我想删除构建器的原始部分,我想知道这是否以类似的方式工作所以我最终得到:
Car::with(['user:users.id,users.name', 'factory:factories.id,factories.name', 'producer'])
很有魅力