0

我正在使用雄辩的多态关系来管理不同模型和其他称为公司的模型之间的数据透视表。

我有一个包含以下结构的数据透视表: 在此处输入图像描述

我必须使用 eloquent 查询构建器使用 model_id 和 model_type 在车辆表和数据透视表之间进行连接查询。但是当我这样做时:

$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();

此代码不返回任何结果。但是,如果我将第二个 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();

此代码运行正确并返回我想要的结果,但我认为这是获取结果的错误方法。

有人知道是否有办法让运行第一个代码?

感谢您的回复。

4

1 回答 1

2

好的。我解决了。解决方案是将第二个更改为 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();
于 2019-03-11T14:18:51.713 回答