Orm Symfony 1推进-如何在没有DB select like RETRIVEBYPK的情况下通过ID获取对象

Orm Symfony 1推进-如何在没有DB select like RETRIVEBYPK的情况下通过ID获取对象,orm,symfony1,propel,Orm,Symfony1,Propel,我需要将Channel对象设置为ChannelMedia。 我没有通道对象,而是ID。 我可以使用ChannelPeer静态方法retrieveByPK,但这使得Select-to-DB只能获取对象 我如何做到这一点 检查以下代码: $channel = ChannelPeer::retrieveByPK($channelID); $channel_media = new ChannelMedia(); $channel_media->setMedia($this-

我需要将Channel对象设置为ChannelMedia。 我没有通道对象,而是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();

您的
ChannelMedia
类应该有一个
setChannelId()
方法。您可以使用它来设置通道ID,从而避免对DB进行额外调用

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

谢谢,我不知道我有这样的方法。很简单:)如果你能帮上忙,就不要使用对等类,而是使用ActiveQuery,即
$channel-ChannelQuery::create()findPk($channelID)