Symfony1 在symfony中重用操作

Symfony1 在symfony中重用操作,symfony1,symfony-1.4,symfony-forms,Symfony1,Symfony 1.4,Symfony Forms,假设我们有一个文章模型和一个评论模型 Article: columns: body: text Comment: columns: article_id: integer message: text relations: Article: local: article_id foreign: id foreignAlias: Comments 我们根据“文章”和“评论”路线集合生成2个模型: article:

假设我们有一个文章模型和一个评论模型

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个积垢。现在,在文章的ShowAction中,我想显示一篇文章,它的相关评论和添加评论的表单

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

  }
}

问题是在文章/显示操作中发布评论时,如何重用评论/新建和评论/创建操作?这是组织代码的正确方法吗?

如果要重用操作,可能需要一个组件。 组件类似于partials,但是当您必须向组件添加一些逻辑时(比如在comment/new或comment/create操作中使用的代码),您可以使用组件

组件就像一个动作,除了 速度快得多。逻辑 组件保存在类中 从sfComponents继承,位于 在actions/components.class.php中 文件其演示文稿保存在一个文件夹中 部分的

:

这些文档是针对Symfony 1.2的,我在Symfony 1.4中使用它没有问题


我真的很确定,一个组件是你正在寻找的

你用comment/new和comment/create到底指的是什么?我明白了。至少,将注释创建代码移动到注释模型中,以便可以在任何地方访问:$comment->saveThisCommentThroughMyModel($data)。根据你在上面发布的内容,我真的不知道还能说些什么。