我有以下代码:
$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而不运行数百个额外的查询.
我在项目中使用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:.../.. /./这对我来说没有意义..