假设我们有文章模型和评论模型。
Article:
columns:
body: text
Comment:
columns:
article_id: integer
message: text
relations:
Article:
local: article_id
foreign: id
foreignAlias: Comments
我们根据“文章”和“评论”路线集合生成2个模型:
article:
class: sfDoctrineRouteCollection
options:
module: article
model: Article
comment:
class: sfDoctrineRouteCollection
options:
module: comment
model: Comment
因此,我们基本上每个模型都有2个问题。现在,在文章的节目动作中,我想展示一篇文章,它是相关的评论和添加评论的表格。
class articleActions extends sfActions
{
public function executeShow(sfWebRequest $request)
{
$this->article = $this->getRoute()->getObject();
$this->comments = Doctrine::getTable('Comment')->findAllByArticleId ($this->article->getId());
$this->form = new CommentForm();
}
}
问题是如何在文章/节目动作中发表评论时重用评论/新评论/创建动作?这是组织代码的正确方法吗?
答案 0 :(得分:1)
如果要重用操作,则可能需要组件。 组件类似于partials,但是当你必须为它添加一些逻辑时你使用一个组件(比如你在comment / new或comment / create的操作中使用的代码)。
组件就像一个动作,除了 它快得多。一个逻辑 组件保存在一个类中 继承自sfComponents,位于 在actions / components.class.php中 文件。它的介绍保存在一个 部分。
check here the docs of Symfony:
文档适用于Symfony 1.2,我在Symfony 1.4中使用它没有问题
我确信你正在寻找一个组件。