Laravel - 获取记录集合,如果另一个表中不存在

Ver*_*san 2 php mysql laravel eloquent

如果这些记录在另一个表中不存在,我需要从表中获取所有记录,例如
表“汽车”

| ID | Name_of_car  
+----+----------------  
| 1 .| Toyota  
+----+----------------  
| 2 .| Ford
Run Code Online (Sandbox Code Playgroud)

表 'Crashed_cars'

| car_id | crash_date  
+--------+----------------  
| 1 .....| 22-02-2016  
Run Code Online (Sandbox Code Playgroud)

现在我想得到所有没有撞毁的汽车 - 我该怎么做?
目前我使用循环,但由于条目数量(大约 3000),我将不得不使用直接收集。这是我的查询:

Cars::select( 'id', 'firstname', 'lastname', 'car', 'color' )->get();
Run Code Online (Sandbox Code Playgroud)

Joe*_*inz 7

最好的方法可能是获取所有坠毁汽车的 ID,然后搜索所有其他汽车。换句话说,是这样的:

$crashedCarIds = CrashedCar::pluck('car_id')->all();
$cars = Car::whereNotIn('id', $crashedCarIds)->select(...)->get();
Run Code Online (Sandbox Code Playgroud)