cakePHP从函数/方法分配变量

cakePHP从函数/方法分配变量,cakephp,controller,variable-assignment,var,Cakephp,Controller,Variable Assignment,Var,这是我的密码: class ManImportsController extends AppController { public $uppath; var $name = 'ManImports'; var $uses = array ('RFupload','ManImport'); var $helpers = array ('Html', 'Session','Time', 'Form', 'Js', 'Javascript'

这是我的密码:

class ManImportsController extends AppController {
    public $uppath;
    var $name       = 'ManImports';
    var $uses       = array ('RFupload','ManImport');
    var $helpers    = array ('Html', 'Session','Time', 'Form', 'Js', 'Javascript','DatePicker','Ajax','IrDependentArray','databaseFields','FileUpload.FileUpload', 'showFields');
    var $components = array ('FileUpload.FileUpload','Session','RequestHandler');
    var $actsAs     = array('FileUpload.FileUpload' => array(
                      'uploadDir' => $this->uppath,           // Primary Upload Path
                      'forceWebroot' => false,                // false, files upload to uploadDir
                      'fields' => array ('name' => 'name', 'size' => 'size',
                      'date' => 'date', 'created' => 'created',
                      'type' => 'type'),
                      'allowedTypes' => array ('csv' => array('application/csv'),
                      'xls' =>array('application/vnd.ms-excel'),
                      'xlsx' =>array('application/vnd.ms-excel')),
                      'required' => false,                    // true = errors when file isn't uploaded.
                      'maxFileSize' => false,                 // false to turns off maxFileSize
                      'unique' => true,                       // true will overwrite files with same name.
                      'massSave' => true,
                      'fileNameFunction' => false));          //execute the Sha1 function on a filename before saving it (default false)

    public function beforeFilter() {
       $this->uppath = $this->get_path();
    }  // end function beforeFilter

    function get_path() {
       $mach = gethostname();
       if ($mach=='my_machine_ID') {
          $path = "C:/home/files/uploads/";
       } else {
          $path = '/home/files/uploads/';
       }  // end if $mach
       return $path;
    }  // end function get_path
} // end class ManImportsController
问题是通过正确调用函数/方法“get_path”来正确分配“uploadDir”。我尝试了4种不同的组合,从cakePHP约定到PHP OOP,但到目前为止没有任何效果

你知道我在这里遗漏了什么吗?你能告诉我怎么称呼这个吗


我必须在Linux box上部署,但目前需要使用Win7开发机器。

首先,$actsAs用于指定模型行为。控制器中不应该有$actsAs

仔细阅读-您可能是:
a) 通过$actsAs在您的模型中实现行为(在这种情况下,您根本不需要控制器中的组件)或
b) 如果您真的不需要模型,而是想实现该组件,那么您可以将该组件包括在控制器中,并且根本不需要$actsAs。(请注意,不建议采用这种方式)

但无论如何,控制器中都不应该有$actsAs


编辑:顺便说一句,我显然不知道您的具体要求,也不知道您正在使用的CakePHP的哪个版本,但它比您正在使用的版本更新得多,维护得也更积极。

您有任何错误吗?我不确定这是否与您的问题有关,但行为是在模型中定义的,而不是在控制器中定义的。谢谢!该公司让我们停留在1.3版本,不允许更新。不要认为我可以做我想做的另一件事,那就是V1.3中下拉选择字段中的阴影文本。想要更干净的屏幕。将移动$actAS到模型中,但实际上一直在努力与上传。如果我不能让它工作的话,我可能会回来获取更多的信息。我目前没有收到任何错误,甚至不能得到“echo‘HELP’;”这样就不确定它是否正在处理。屏幕显示良好,需要传播所有下拉列表,但单击“上载”按钮时没有显示任何内容。如果有帮助的话,可以把这些都放在PasteBin上!啊,1.3。我不知道我还能给你什么帮助;我还没有真正使用你正在使用的插件。对于1.3项目,我使用了,我觉得很好。它现在已经被弃用了,但从外观上看,您目前使用的插件实际上也被弃用了(还有很多1.3插件!)所有人都需要帮助克服这个文件上传问题