0

我正在尝试在 CakePHP 中实现类别树。

如果我在 AppModel 中添加这一行:

    public $actsAs = array('Tree');

并从CategoriesController 输出:

    $behaviors = $this->Category->Behaviors->attached();
    debug($behaviors); die;

结果是:

    array(
            (int) 0 => 'Tree'
    )

但我不希望我所有的模型都表现得像 Tree。因此,如果我在类别模型(Category.php)中添加它:

    public $actsAs = array('Tree');

并从CategoriesController 输出:

    $behaviors = $this->Category->Behaviors->attached();
    debug($behaviors); die;

结果是:

    array()

知道为什么吗?这里的食谱:http ://book.cakephp.org/2.0/en/models/behaviors.html#using-behaviors 说我可以在需要特定行为的模型中使用 $actsAs。

谢谢你。

4

1 回答 1

1

在此示例中,我正在从控制器动态更改路径。

代码 :

在控制器中(您指定数据以更改 $actsAs 变量的值):

$custom_path=’/img/cakephp’;
Configure::write(‘path_var’,$custom_path);

在 Model 中,您将在构造函数中更改值:

public function __construct($id = false, $table = null, $ds = null)
{
  $path = Configure::read(‘path_var’);
  // change actsAs’s different value according to your need
  $this->actsAs['Upload.Upload']['photo']['path'] = $path;
  parent::__construct($id, $table, $ds);
}
  • PS:请在创建模型之前编写语句 Configure::write :-P
  • 快乐编码
于 2012-12-26T12:35:56.020 回答