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)。根据你在上面发布的内容,我真的不知道还能说些什么。