Symfony 1推进 - 如何通过ID获取对象而不选择像retrieveByPK这样的DB选择

时间:2014-10-15 15:20:17

标签: orm symfony1 propel

我需要将Channel对象设置为ChannelMedia。 我没有Channel对象,而是我有ID。 我可以使用ChannelPeer静态方法,retrieveByPK,但这使得Select to DB只能获取对象。

我如何实现这一目标?

检查以下代码:

    $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();

1 个答案:

答案 0 :(得分:0)

您的ChannelMedia课程应该采用setChannelId()方法。您可以使用它来设置通道ID,从而避免额外调用数据库。

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