使用2列的id值组合的Laravel / Eloquent关系

时间:2016-07-18 08:08:01

标签: php mysql laravel eloquent

简化信息:我有一个数据库,我有一个包含列的表格' code1'和' code2',这些用于为id列为' code1.code2'的另一个表创建一个id。列是varchar列。

完整信息:如果您想知道我正在处理geonames数据库的导入器,并且geonames表有country_code和admin1_codes,他们有另一个名为admin1_codes的表,该表的ID列为country_code.admin1_code(与dot结合) 。如果您需要有关geonames数据库的更多信息,可以在他们的网站上免费获取。

所以我想用雄辩的模型建立关系,但似乎不可能。我想我需要为此创建自己的自定义数据库关系类。

所以问题是,完成这项任务的最佳方法是什么?

谢谢!

更新

我想出了一个使用范围的解决方法:

$query = $query->leftJoin('table2',function($join) {
    $join->on(
        DB::raw('table2.code = CONCAT_WS(\'.\','.
                'table1.code1,'.
                'table1.code2)'),
        DB::raw(''),
        DB::raw('')
   );
});
return $query;

在匹配代码时成功加入相关行。但是,我想在表之间建立关系。如果使用Eloquent甚至可能有任何想法?或者你能想一个更优雅的解决方案吗?

0 个答案:

没有答案