私は奇妙な(多分そうではない)デザインのデータベースを継承しました。私はcakePHPに移行していますが、それを変更すると多くのことが分断されますので、そのまま維持したいと思います。cakePhp 3関連のない2つのmysqlテーブルを結合する(緩く関連する)
clothes
{
ean
reference
reference_name
size
color
}
EAN(欧州の資料番号)ユニークなIDである、すべてのEANが基準色とサイズのユニークな組み合わせがあるが、参照:
私は2人のテーブルの服や写真、服を持っているが、この分野を持っています異なる服(サイズと色、色や大きさ、写真との一貫性はありません)によって共有される複数の写真があります。
pictures
{
id
id_reference
reference_name
picture
}
"id_reference"は、洋服テーブルの "参照"フィールドと一致しますが、正式には関連付けられていないため、外部キーとしてマークされていません。
Iは、JSON配列
public function women()
{
$page = $_POST['page'];
$this->autoRender = false;
$articles = TableRegistry::get('Clothes');
$results = $page;
if(is_numeric($page))
{
$pageNumber = (int)$page;
$results = $articles->find('all',['page'=>1])
->select(['reference','nombre'])
->where(['Clothes.reference_name' => 'WOMEN'])
->group('reference')
->limit(10)
->contain(['Pictures']);
}
$this->response->body(json_encode($results));
return $this->response;
}
class ClothesTable extends Table
{
public function initialize(array $config)
{
$this->hasMany('Pictures', [
'className' => 'Pictures',
'foreignKey' => 'id_reference',
'bindingKey' => 'reference'
]);
}
}
を取得するために、この機能を持っている私はoficialドキュメントの方法のいくつかを試みたが、CakePHPは(二つのテーブルが関連していない)エラーをスロー。現在、JSON文字列には空のpictures=[]
配列が含まれています。 JSONレスポンスでピクチャリストを取得する方法を知っていますか?
私は実際にはプレーンなSQLクエリをやり終えました。 – Jigzat