Cakephp模型中的Php变量

时间:2012-08-07 06:27:10

标签: php cakephp cakephp-2.1 cakephp-appmodel

我正在尝试使用两个表连接使用CakePHP的多个关系和条件我的模型代码在这里使用

public $userid = 3;
    public $name = 'Course';
    public $hasMany = array(
        'Enrollcourse' => array(
            'className'     => 'Enrollcourse',
            'foreignKey'    => 'course_id',
            'conditions'    => array('Enrollcourse.student_id' => $this->userid),
            'dependent'     => true
        )
    );

OR

   public $userid = 3;
        public $name = 'Course';
        public $hasMany = array(
            'Enrollcourse' => array(
                'className'     => 'Enrollcourse',
                'foreignKey'    => 'course_id',
                'conditions'    => array('Enrollcourse.student_id' => $userid),
                'dependent'     => true
            )
        );

这里是$userid是一个变量,用于检查以检索所选用户的数据,但我无法获得此信息。发生以下情况

Error: parse error
File: E:\wamp\www\simpleApp\app\Model\course.php
Line: 10

任何帮助?

1 个答案:

答案 0 :(得分:4)

您不能在类的变量声明中使用变量。这意味着使用$userid将导致您看到的解析错误。

克服动态信息的最佳方法是替换/重载模型的构造函数:

public function __construct($id = false, $table = null, $ds = null) {
    $this->hasMany = array(
        'Enrollcourse' => array(
            'className'     => 'Enrollcourse',
            'foreignKey'    => 'course_id',
            'conditions'    => array('Enrollcourse.student_id' => $this->userid),
            'dependent'     => true
        )
    );
    parent::__construct($id, $table, $ds);
}

这克服了在类变量声明中使用变量。