Cakephp模型中的Php变量
我正在尝试使用join with two table,方法是使用CakePHP的许多关系和我的模型代码所使用的条件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'
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')???如果您想询问其他内容,最好问一个新问题;)