如何获取组件中的当前对象(symfony 1.4)?

时间:2012-02-08 16:44:21

标签: php symfony1 symfony-1.4

我找到的唯一代码是:

class modulenameComponents extends sfComponents
{

  public function executeAction(sfWebRequest $request)
  {

    $object = $this->getContext()->getController()
      ->getAction($this->getModuleName(), $request->getParameter('action'))
      ->getRoute()->getObject();

  } 
}

但如果组件包含在不同的模块中,它就不起作用。

3 个答案:

答案 0 :(得分:3)

从模板中调用组件,因此从模板传递对象:

<?php include_component('modulename', 'actionName', array('myObject' => $myObject)) ?>

您可以通过$ this:

访问组件中的对象
class modulenameComponents extends sfComponents
{
   public function executeActionName()
   {
     // your object
     $object = $this->myObject;
     ...
   }
}

答案 1 :(得分:1)

关于Symfony 1.4.x doctrine admin generator,其中所有内容都在generator.yml中完成,组件接收包含模型对象的表单对象。因此,要获取当前模型对象,请执行以下操作:

$myModelObject = $this->form->getObject();

注意:这是模型对象,而不是表对象。要获取表对象,请执行以下操作:

$myModelTableObject = $this->form->getObject()->getTable();

我必须自己解决这个问题,所以希望它有所帮助...

答案 2 :(得分:0)

可能有更好的方法,但在您的操作中使用sfConfig::set(),组件中的sfConfig::get()应该可以解决问题。