Поездки hasMany НогаFind() один из каждого поля соответствия CakePHP
Аэропорты не имеет никаких ассоциаций
Как я могу найти самые дешевые поездки для каждого аэропорта назначения с помощью CakePHP?
Прямо сейчас, единственное, что я могу придумать, - это пройти через множество аэропортов. Это потребует сотни запросов к базе данных (что, я думаю, не самый быстрый способ сделать это).
function getCheapestTrip($origin){
$airports=$this->Airport->getAirports();
foreach($airports as $airport):
$cheapest_flights=$this->Trip->find('first',
array(
'conditions'=>array('Leg.origin'=>$origin, 'MIN(Trip.price) as price'),
'fields'=>array('Trip.origin','price','Leg.destination','Leg.depart','Leg.arrive'),
'recursive'=>2,
));
endforeach;
}
}
Кроме того, я думаю, что этот тип вещи данные должны быть в модели на конвенции CakePHP (модели жира, тощий контроллеров). Я прочитал, что для вызова функции другой модели, такой как getAirports, я могу использовать loadModel, но я нашел это в разделе метода контроллера CakePHP. Как получить данные/модельную функцию другой модели в чужих?
Спасибо!
В коде, который вы указали, вы перебираете через аэропорты, но не используете аэропорт в любом месте. Вы повторяете один и тот же запрос снова и снова. Вам не хватает условия? – RabidFire 2010-12-01 02:38:51
Да, код, который я опубликовал, определенно является отправной точкой, и раньше я был измотан, когда отправил его. Я собираюсь попытаться снова понять эту штуку и, возможно, опубликовать/изменить что-то еще, если я не смогу ее получить. Благодарим за комментирование. – JohnAllen 2010-12-01 02:49:52