Я пытаюсь использовать соединение с двумя таблицами, используя много отношений 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 ) );
ИЛИ
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
Любая помощь?
Вы не можете использовать переменные в объявлении переменной внутри класса. Это означает, что использование $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); }
Это преодолевает использование переменной во время объявления переменной класса.