Bir veritabanını tuhaf (belki de değil) bir tasarımla miras aldım. CakePHP'ye geçiş yapıyorum ama onu değiştirmek çok şeyi kırıyor, dolayısıyla onu olduğu gibi tutmak istiyorum.cakePhp 3 ilgisiz iki mysql tablosunu birleştir (gevşek ilişkili)
clothes
{
ean
reference
reference_name
size
color
}
ean (avrupa makale sayısı) benzersiz id her ean referans renk ve büyüklükte eşsiz kombinasyonu, ama bir başvuru:
ben iki tablo giysi ve resimler, giysi var bu alana sahiptir Farklı kıyafetler tarafından paylaşılmış birden fazla fotoğrafa sahiptir (boyutlar ve renkler, renk veya boyutlar ve resimler arasında bir tutarlılık yoktur).
pictures
{
id
id_reference
reference_name
picture
}
"id_reference" giysi tablodaki "referans" alanı ile eşleşen ancak resmen yabancı anahtarları olarak işaretlenmemiş ilgili değildir.
I oficial belgelerinde yöntemlerden bazıları güvenilir bir JSON dizisi
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'
]);
}
}
almak için bu işlevi vardır, ancak CakePHP'de bir hata (iki tablo ile ilgili değildir) atar. Şu anda JSON dizesi boş bir pictures=[]
dizisi içeriyor. JSON yanıtındaki resim listesini nasıl alabilirim bilen var mı?
Gerçekten düz bir SQL sorgusu yaptım. – Jigzat