Вопрос

У меня есть приложение laravel 4, и в этом приложении мне нужно 2 раза определить модель по отношению к другой модели, но с учетом типа.

Пример

class Car extends Eloquent{

     public function oldDrivers(){
        return $this->hasMany('Driver');
     }

     public function newDrivers(){
        return $this->hasMany('Driver');
     }

}

поэтому отношение будет car Идентификатор в driverВ таблице дело в том, что когда я хочу получить старые драйверы только для определенной машины, она возвращает всех драйверов из обоих отношений.

Изучив ее, я обнаружил, что это одна и та же таблица, поэтому теперь я установил тип в Driver модель, теперь я хочу, чтобы мое отношение фильтровалось по этому типу, поэтому старые драйверы будут только драйверами с типом oldDrivers, а новые драйверы будут драйверами только с установленным типом newDriver,

Как это можно сделать в Laravel?

Это было полезно?

Решение

Вы можете попробовать что-то вроде этого:

class Car extends Eloquent{

     public function oldDrivers(){
        return $this->hasMany('Driver')->where('type', 'olddrivers');
     }

     public function newDrivers(){
        return $this->hasMany('Driver')->where('type', 'newdrivers');
     }

 }

Предполагается, что у вас есть type поле в качестве фильтра в вашей базе данных.Если я ошибаюсь насчет type поле, то вы просто измените поле field имя к правильному, потому что вы поняли, как можно добавить фильтр с помощью where пункт.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top