laravel 使用 in on 子句模型名称加入多态枢轴 table
laravel join with polymorphic pivot table using in on clause model names
我正在使用 eloquent 多态关系,它非常适合管理不同模型和称为公司的其他模型之间的枢轴 table。
我有一个包含以下结构的枢轴 table:
我必须使用 model_id 和 model_type 使用 eloquent 查询生成器在车辆 table 和枢轴 table 之间进行连接查询。但是当我这样做时:
$builder->join('pivot_table', function($join){
$join->on('vehicle.id','=','pivot_table.model_id')
->on('pivot.model_type', Vehiculo::class );
})->select('vehicle.*',pivot_table.*)->get();
此代码没有 return 任何结果。但是,如果我将第二个 on 子句更改为:
$builder->join('pivot_table', function($join){
$join->on('vehicle.id','=','pivot_table.model_id')
->on('pivot.model_type', 'like' , '%Vehiculo%');
})->select('vehicle.*',pivot_table.*)->get();
这段代码 运行 正确并且 return 得到了我想要的结果,但我认为这是错误的获取结果的方法。
有人知道是否有办法使 运行 第一个代码?
感谢您的回复。
好的。我解决了。解决方案是将第二个更改为 where
$builder->join('pivot_table', function($join){
$join->on('vehicle.id','=','pivot_table.model_id')
->where('pivot.model_type' , Vehiculo::class);
})->select('vehicle.*',pivot_table.*)->get();
我正在使用 eloquent 多态关系,它非常适合管理不同模型和称为公司的其他模型之间的枢轴 table。
我有一个包含以下结构的枢轴 table:
我必须使用 model_id 和 model_type 使用 eloquent 查询生成器在车辆 table 和枢轴 table 之间进行连接查询。但是当我这样做时:
$builder->join('pivot_table', function($join){
$join->on('vehicle.id','=','pivot_table.model_id')
->on('pivot.model_type', Vehiculo::class );
})->select('vehicle.*',pivot_table.*)->get();
此代码没有 return 任何结果。但是,如果我将第二个 on 子句更改为:
$builder->join('pivot_table', function($join){
$join->on('vehicle.id','=','pivot_table.model_id')
->on('pivot.model_type', 'like' , '%Vehiculo%');
})->select('vehicle.*',pivot_table.*)->get();
这段代码 运行 正确并且 return 得到了我想要的结果,但我认为这是错误的获取结果的方法。
有人知道是否有办法使 运行 第一个代码?
感谢您的回复。
好的。我解决了。解决方案是将第二个更改为 where
$builder->join('pivot_table', function($join){
$join->on('vehicle.id','=','pivot_table.model_id')
->where('pivot.model_type' , Vehiculo::class);
})->select('vehicle.*',pivot_table.*)->get();