【发布时间】:2018-11-24 13:39:44
【问题描述】:
我有一个名为 user_ranks 的数据透视表,尽管我知道它必须是 rank_user。在此表中,我有这些列:
ranker_id(user_id), car_id, rank
在users 表中我有user_id 列等等...
在cars 表中我有car_id 等等...
我想要的是从cars 表中获取所有汽车,并在user_ranks 表中获取与每辆汽车相关的avg 的rank 列。
我之前在控制器中没有使用任何模型的情况是:
$car = \DB::table('cars')
->selectRaw('*, AVG(user_ranks.rank) rank_avg, car.car_id car_id')
->join('users', 'users.user_id', 'car.user_id')
->leftJoin('user_ranks', 'user_ranks.car_id', 'cars.car_id')
->where('cars.car_id', $carId)
->groupBy('cars.car_id')
->first();
但是现在我想使用模型,但是(我认为)没有必要这样做,因为在该表中我将拥有 id、rank,其中 id 和 @ 的数据都是从 1 到 5 987654338@。它们是静态的,不会在那里插入一些数据。
那么有没有可能在没有额外表的情况下使用两个表在汽车及其等级之间建立关系(多对多关系)?
谢谢
【问题讨论】:
-
你能显示表的架构吗?
users,cars,user_ranks -
什么是
ranks表字段? -
我没有任何名为
ranks的表。正如我所说,我在user_ranks表中有ranker_id(user_id)、car_id、rank、user_id、username、password在users表和car_id、@987654cars表。谢谢@Alihosseinshahabi
标签: laravel many-to-many relationship