我想在cakephp模型类变量中使用表单变量$ actsAs.Below是一个示例代码。
public $actsAs = array('MeioUpload' => array('doc' => array('allowedMime' => array('application/x-compressed','application/x-zip-compressed','application/zip','multipart/x-zip'),'dir'=>'uploads'.DS.$this->data['User']['foldername'])));
在上面的代码中,我在$this->data['User']['foldername']
数组中使用了一个表单变量($actsAs
),用于将目录名称传递给meioupload行为。
实现它的写入过程是什么。
答案 0 :(得分:1)
这个定义是错误的。
您可以从构造函数中设置该数据。
public function __construct($data) {
$this->actsAs = array('MeioUpload' => array('doc' => array('allowedMime' => array('application/x-compressed', 'application/x-zip-compressed', 'application/zip', 'multipart/x-zip'), 'dir' => 'uploads' . DS . $data['User']['foldername'])));
}
这样的事情可以解决问题。
答案 1 :(得分:0)
我添加了parent::__construct();
和$this->Behaviors->init($this->alias,$this->actsAs);
,效果很好。
以下是修改后的代码:
public function __construct() {
parent::__construct();
$this->actsAs = array('MeioUpload' => array('doc' => array('allowedMime' => array('application/x-compressed', 'application/x-zip-compressed', 'application/zip', 'multipart/x-zip'), 'allowedExt' => array('.zip'),'dir' => 'uploads' . DS . $_REQUEST['data']['User']['foldername'])));
$this->Behaviors->init($this->alias,$this->actsAs);
}
答案 2 :(得分:0)
在这个例子中,我正在从控制器动态改变路径。
代码:
在Controller中(您指定数据以更改$ actsAs变量的值):
$custom_path=’/img/cakephp’;
Configure::write(‘path_var’,$custom_path);
在模型中,您将在构造函数中更改值:
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);
}
请在创建模型之前写下语句Configure :: write。