小编wik*_*kus的帖子

如何在doctrine嵌套集中获取节点的父ID

我有以下代码:

$treeObject = Doctrine_Core::getTable('Category')->getTree();
$rootColumnName = $treeObject->getAttribute('rootColumnName');

foreach ($treeObject->fetchRoots() as $root) {
  $options = array( 'root_id' => $root->$rootColumnName  );

  foreach($treeObject->fetchTree($options) as $node) {
    $parent_id = $node->getNode()->getParent()->getId();
    echo $parent_id;
  }
}
Run Code Online (Sandbox Code Playgroud)

这工作正常,但getparent()调用为每个节点执行查询.是在那里检索父ID而不运行数百个额外的查询.

doctrine nested-sets

6
推荐指数
0
解决办法
1685
查看次数

如何在symfony 1.4中将swfWidgetformChoice多个选项序列化到数据库中的单个字段

我在项目中使用symfony 1.4,我需要在单个字段中存储多个选项.

我正在使用sfWidgetFormChoice设置这样的loooks:

    $status = Doctrine::getTable('Profile')->getStatuses();
    $this->widgetSchema['status'] = new sfWidgetFormChoice(array(
        'expanded'=>true,
        'choices'=>$status,
        'multiple'=>true
        ));
    $this->validatorSchema['status'] = new sfValidatorChoice( 
            array('choices'=>array_keys($status),
            'multiple'=>true, 'required'=>false
   ));
Run Code Online (Sandbox Code Playgroud)

在我的模型中,我使用以下内容将多个选项序列化为单个字段.

  public function  setStatus($data) {
     $data = serialize($data);

     $this->_set('status', $data);

}
Run Code Online (Sandbox Code Playgroud)

?>哪个像魅力一样工作并将数据保存为:

a:2:{i:0;s:7:"relaxed";i:1;s:8:"Inactive";}
Run Code Online (Sandbox Code Playgroud)

但是,我在使用我的模型中的以下内容时难以将序列化字符串检索为数组:

    public function  getStatus() {
     return unserialize($this->status);
    }
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么吗?我收到以下错误:

注意:未定义的属性:C:中的Profile :: $ status:.../.. /./这对我来说没有意义..

doctrine symfony1

1
推荐指数
1
解决办法
878
查看次数

标签 统计

doctrine ×2

nested-sets ×1

symfony1 ×1