在symfony中重用动作

时间:2011-04-28 23:13:00

标签: 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:
  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();

  }
}

问题是如何在文章/节目动作中发表评论时重用评论/新评论/创建动作?这是组织代码的正确方法吗?

1 个答案:

答案 0 :(得分:1)

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

  

组件就像一个动作,除了   它快得多。一个逻辑   组件保存在一个类中   继承自sfComponents,位于   在actions / components.class.php中   文件。它的介绍保存在一个   部分。

check here the docs of Symfony

文档适用于Symfony 1.2,我在Symfony 1.4中使用它没有问题

我确信你正在寻找一个组件。