前提・実現したいこと
joinしたテーブルの値を取得したい
以下のコードだと、Productsテーブルの値しか取得できていない
Products,Tags両テーブルの値をSQL実行時に取得したい
該当のソースコード
php
1 2 $product = $this->Products->find(); 3 $product->leftJoin( 4 ['Tags' => 'tags'], 5 ['Products.id = Tags.product_id'] 6 ); 7 8 $condition = []; 9 if (!empty($word)) array_push($condition, ['field01 like ' => "%".$word."%"]); 10 $product->where($condition);
試したこと
以下はSQLエラー
php
1 2 $product = $this->Products->find()->select(['Products.*','Tags.*']); 3 $product->leftJoin( 4 ['Tags' => 'tags'], 5 ['Products.id = Tags.product_id'] 6 ); 7 8 $condition = []; 9 if (!empty($word)) array_push($condition, ['field01 like ' => "%".$word."%"]); 10 $product->where($condition);
テーブル情報
sql
1create table tags ( 2 id INT AUTO_INCREMENT PRIMARY KEY, 3 product_id int not null, 4 position datetime default null, 5 name varchar(20) default null, 6 note1 text default null, 7 memo text default null, 8 created DATETIME default null, 9 FOREIGN KEY product_key (product_id) REFERENCES products(id) 10) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; 11 12CREATE TABLE products ( 13 id INT AUTO_INCREMENT PRIMARY KEY, 14 field01 varchar(20) default NULL, 15 code VARCHAR(50) NOT NULL, 16 item varchar(255) default null, 17 memo text default null, 18 created DATETIME default null 19) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
補足情報
cakephp4
php7.2
回答1件
あなたの回答
tips
プレビュー