在 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 GrossmanObjectQuery::create()
让您执行 ->select()
以仅返回您想要的列。出于一致性和代码重用的原因,我正在尝试对我创建的新对象做同样的事情。
【参考方案1】:
我只是传递对象...但是如果您想在数组中包含列,您可以使用 toArray() 或 getByName() 方法。
在 ORM 对象中只包含一些列对我来说没有意义。
您的问题同时标记为 Doctrine 和 Propel - 此答案适用于 Propel。
【讨论】:
以上是关于在 Propel 中,我可以在 save() 之后选择要返回的字段吗的主要内容,如果未能解决你的问题,请参考以下文章
Propel 1.6 从 Sybase 15.7 生成模式有一些麻烦