Cakephp模型中的Php变量

Cakephp模型中的Php变量,php,cakephp,cakephp-2.1,cakephp-model,Php,Cakephp,Cakephp 2.1,Cakephp Model,我正在尝试使用join with two table,方法是使用CakePHP的许多关系和我的模型代码所使用的条件 public $userid = 3; public $name = 'Course'; public $hasMany = array( 'Enrollcourse' => array( 'className' => 'Enrollcourse', 'foreignKey'

我正在尝试使用join with two table,方法是使用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
        )
    );

这里是
$userid
是一个变量,用于检查以检索所选用户的数据,但我无法获取该变量,出现以下情况

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

有什么帮助吗?

在类中的变量声明中不能使用变量。这意味着使用
$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);
}

这克服了在类变量声明期间使用变量的问题。

在类内的变量声明中不能使用变量。这意味着使用
$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);
}

这克服了在类变量声明期间使用变量的问题。

您必须在构造函数中这样做。但我认为你走的路不对。不知道你在做什么。你可以尝试使用
bindModel()
m cakephp初学者将动态模型关联到你的控制器中。你能解释一下吗?问题不在cakephp,@m_A_K,它是基本的PHP。您不能在类变量(
$hasMany
)中引用变量(
$this->userid
$userid
)。您必须在构造函数中这样做。但我认为你走的路不对。不知道你在做什么。你可以尝试使用
bindModel()
m cakephp初学者将动态模型关联到你的控制器中。你能解释一下吗?问题不在cakephp,@m_A_K,它是基本的PHP。你不能在类变量(
$hasMany
)中引用变量(
$this->userid
$userid
)。thanx主要是它的工作。你能进一步解释这个过程吗?我非常感谢你,因为我是初学者,当你在类上声明变量时,比如你最初的例子中的
hasMany
,您试图使用另一个变量作为其声明的一部分。在PHP中,不能在另一个变量的声明中包含一个变量,因为在初始化变量时,作用域是不确定的。为了克服这个问题,我们可以设置
\u构造函数
方法,每次创建类的实例时都会调用该方法。这与在类中声明变量的效果相同,但避免了限制:)我希望这能更好地解释它。您能告诉我如何在本节中使用seision变量或auth变量$This->Session->read('User.role')???如果您想询问其他内容,最好问一个新问题;)thanx主要是它的工作你能进一步解释这个过程吗我会非常感谢你,因为我是初学者当你在一个类上声明一个变量时,比如在你的初始示例中,
hasMany
,你试图使用另一个变量作为其声明的一部分。在PHP中,不能在另一个变量的声明中包含一个变量,因为在初始化变量时,作用域是不确定的。为了克服这个问题,我们可以设置
\u构造函数
方法,每次创建类的实例时都会调用该方法。这与在类中声明变量的效果相同,但避免了限制:)我希望这能更好地解释它。您能告诉我如何在本节中使用seision变量或auth变量$This->Session->read('User.role')???如果您想询问其他内容,最好问一个新问题;)