2014-10-15 10 views
0

Мне нужно установить объект Channel в ChannelMedia. У меня нет объекта Channel, у меня есть идентификатор. Я мог бы использовать статический метод ChannelPeer, retrieveByPK, но это делает выбор для DB только для получения объекта.Symfony 1 propel - как получить объект по ID без DB, выберите как retrieveByPK

Как это достичь?

Проверить ниже код:

$channel = ChannelPeer::retrieveByPK($channelID); 
    $channel_media = new ChannelMedia(); 
    $channel_media->setMedia($this->object); 

    // How to pass ID here? 
    // Alternatively, how to create object from $channelID without DB conn? 
    $channel_media->setChannel($channel); 
    $channel_media->setStatus(3); 
    $channel_media->save(); 
+0

Если вы можете помочь ему, отойти от классов Peer, используйте ActiveQuery вместо этого, то есть '$ канал - ChannelQuery :: Create() findPk ($ channelID);' –

ответ

0

Ваш ChannelMedia класс должен иметь метод setChannelId(). Вы можете использовать это, чтобы установить идентификатор канала, тем самым избегая необходимости делать дополнительный вызов в БД.

$channel_media = new ChannelMedia(); 
$channel_media->setMedia($this->object); 
$channel_media->setChannelId($channelID); 
$channel_media->setStatus(3); 
$channel_media->save(); 
+0

Спасибо, я не понимаю, что я У меня такой метод. Так просто :) – NeverEndingQueue

 Смежные вопросы

  • Нет связанных вопросов^_^