在 Propel 中,我可以在 save() 之后选择要返回的字段吗

Posted

技术标签:

【中文标题】在 Propel 中,我可以在 save() 之后选择要返回的字段吗【英文标题】:In Propel, can I select fields to return after save() 【发布时间】:2011-02-06 21:12:15 【问题描述】:

我创建一个新的评论对象并保存它

$comment = new Comment();
$comment->setText('this is a comment');
$comment->setIp($ip);
$comment->save();

当我执行var_dump($comment) 时,我看到该对象有很多我不想传递给 MVC 架构中的视图的细节。这意味着我必须在视图中进行额外的过滤。

那么有没有办法在 save() 之后只选择我稍后想要传递给视图的字段?类似这段代码,所以 $comment 对象现在只有 text 字段

$comment->save();
$comment->select(array('text'));

【问题讨论】:

为什么不想将对象传递给视图?你怕喝醉了想换对象吗? @Dan Grossman ObjectQuery::create() 让您执行 ->select() 以仅返回您想要的列。出于一致性和代码重用的原因,我正在尝试对我创建的新对象做同样的事情。 【参考方案1】:

我只是传递对象...但是如果您想在数组中包含列,您可以使用 toArray() 或 getByName() 方法。

在 ORM 对象中只包含一些列对我来说没有意义。

您的问题同时标记为 Doctrine 和 Propel - 此答案适用于 Propel。

【讨论】:

以上是关于在 Propel 中,我可以在 save() 之后选择要返回的字段吗的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Propel 中应用 Mysql concat?

Propel 1.6 从 Sybase 15.7 生成模式有一些麻烦

如何将 Propel orm 视为查询类?

如何使用 Propel ORM 在数据库中查找重复条目?

为啥我不能在其他类或函数中使用我的 Propel ORM 类?

如何在普通主机账户上安装 Propel?