0

使用しているモデルコードがここにあるという条件でCakePHPの多くの関係を使用して、2つのテーブルで結合を使用しようとしています

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

何か助けはありますか?

4

1 に答える 1

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);
}

これにより、クラス変数宣言中の変数の使用が克服されます。

于 2012-08-07T22:42:34.980 に答える