0

私は3つのテーブルを持っています:

1 つの lab_categories (列にはid,が含まれますcategory)

class LabCategoriesTable extends Table
{
    public function initialize(array $config)
    {
        parent::initialize($config);

        $this->table('lab_categories');
        $this->displayField('id');
        $this->primaryKey('id');

        $this->hasMany('LabTests', [
            'foreignKey' => 'lab_category_id'
        ]);
        $this->belongsToMany('Laboratories', [
            'foreignKey' => 'lab_category_id',
            'targetForeignKey' => 'laboratory_id',
            'joinTable' => 'laboratories_lab_categories'
        ]);
    }}

id2研究室( 、を含む欄name

class LaboratoriesTable extends Table
{

    public function initialize(array $config)
    {
        parent::initialize($config);

        $this->table('laboratories');
        $this->displayField('name');
        $this->primaryKey('id');

        $this->hasMany('LabRefValues', [
            'foreignKey' => 'laboratory_id'
        ]);
        $this->belongsToMany('LabCategories', [
            'foreignKey' => 'laboratory_id',
            'targetForeignKey' => 'lab_category_id',
            'joinTable' => 'laboratories_lab_categories'
        ]);
    }}

3 つの Laboratories_lab_categories (列にはidlaboratory_id、が含まれますlab_category_id)

class LaboratoriesLabCategoriesTable extends Table
{
    public function initialize(array $config)
    {
        $this->table('laboratories_lab_categories');
        $this->displayField('id');
        $this->primaryKey('id');
        $this->belongsTo('Laboratories', [
            'foreignKey' => 'laboratory_id',
            'joinType' => 'INNER'
        ]);
        $this->belongsTo('LabCategories', [
            'foreignKey' => 'lab_category_id',
            'joinType' => 'INNER'
        ]);
    }}

作成した ajax 呼び出しに追加できるようにlab_categories.name、指定したものに関連付けられているものを選択できるようにしたいと考えています。laboratory.idこのクエリが生成するものと同様の結果を生成したいと考えています。lab_categories から lab_categories.id,category を選択します lab_categories から lab_lab_categories に参加します。

私が使用cakephp 3.1していて、テーブルが焼かれました。関連する質問を検索しましたが、該当するものはありませんでした。

4

0 に答える 0