如何在cakephp 3.X中向表中添加多个行为

时间:2015-10-28 05:58:10

标签: cakephp cakephp-3.0

我想在表格中实现两种行为。一种行为涉及上传图像,而另一种行为涉及加密id。然而,我的问题只是我想要实现行为时的第一个行为。下面是我的表

public function initialize(array $config)
    {
        parent::initialize($config);

        $this->table('image_reports');
        $this->displayField('id');
        $this->primaryKey('id');
        $this->addBehavior('Utils.Uploadable', [
            'image'=>[
                'path'=>'{ROOT}{DS}{WEBROOT}{DS}img{DS}image_reports{DS}',
                'field' => 'id',
                'fileName' => '{field}.{extension}',
                'fields'=>[
                    'fileName'=>'image_name'
                ]
            ],
        ]);
      $this->addBehavior('Hashable');
}

只有第一个被调用的行为才起作用,当我首先调用'hashable'时,它可以工作但是可上传,但是当首次调用uploadable时,它可以工作但是没有用。 我需要帮助,因为根据这个问题,文档中没有任何内容。

2 个答案:

答案 0 :(得分:1)

我得到了导师的帮助,这两种行为都使用了afterSave回调事件,因此我不得不更改一个以使用保存回调。

答案 1 :(得分:0)

你试过......

查看加载的行为

$table->behaviors()->loaded();

检查是否加载了特定行为。 请记住省略插件前缀。

$table->behaviors()->has('CounterCache');

获取加载的行为 请记住省略插件前缀

$table->behaviors()->get('CounterCache');