CakePHP - hasMany getiriliyor?

0 Cevap php

Belki sadece yavaş bir gün yaşıyorum, ama bu neden oluyor bana yaşam için ben çözemiyorum. Bir süredir CakePHP'ye yapmadım ve ben 1.3 sürümünü kullanmak için çalışıyorum, ama bu çalışıyor görünmüyor ...

Ben iki model var:

area.php

<?php
class Area extends AppModel {
    var $name = 'Area';
    var $useTable = 'OR_AREA';
    var $primaryKey = 'A_ID';

    var $belongsTo = array(
        'Building' => array(
            'className' => 'Building',
            'foreignKey' => 'FK_B_ID',
        ),
        'Facility' => array(
            'className' => 'Facility',
            'foreignKey' => 'FK_F_ID',
        ),
        'System' => array(
            'className' => 'System',
            'foreignKey' => 'FK_S_ID',
        )
    );
}
?>

building.php

<?php
class Building extends AppModel {
    var $name = 'Building';
    var $useTable = 'OR_BLDG';
    var $primaryKey = 'B_ID';

    var $hasMany = array(
        'Area' => array(
            'className' => 'Area',
            'foreignKey' => 'FK_B_ID',
        )                    
    );
}
?>

OR_AREA başlıklı bir sütun vardır FK_B_ID o B_ID anlamına gelir.

: Ben gibi bir şey çalıştırırsanız

$this->Building->find('all', array('recursive' => 2));

Ben Alanlarının bol binalara ilişkili OR_AREA tabloda olsa bile tüm binalar için boş [Area] dizileri olsun. Sadece bu değil, Sorgu tablosu bile CakePHP OR_BLDG tüm kayıtların ancak bir şey bulmak için çalıştı görünmüyor. Tüm daha şaşırtıcı, ben yaparsam:

$this->Area->find('all');

Tüm Alanları almak ve uygun olduğunda [Building] diziler doldurulur.

Ne eksik?

Edit:

Benim şema ilgili bölümleri:

CREATE TABLE ORDB_ADMIN.OR_AREA
(
  A_ID            NUMBER(8),
  NAME            VARCHAR2(255 BYTE)            NOT NULL,
  FK_F_ID         NUMBER(8),
  FK_S_ID         NUMBER(8),
  FK_B_ID         NUMBER(8)
)

CREATE TABLE ORDB_ADMIN.OR_BLDG
(
  B_ID           NUMBER(8),
  BLDG           VARCHAR2(90 BYTE)              NOT NULL
)

Bunu ben Oracle kullanıyorum bahsetmek değerli olduğunu hissediyorum ve bana neler olduğunu açıklamak gibi görünüyor a ticket bulundu ama 18 ay önce kapatıldı ve hiçbir gerçek ayrıntılar vardı Bunu düzeltmek için ne yapıldı sorun oldu / ne sağladı.

Ben de okur 1.2 CakePHP Kitap "hasMany" bölümünde bir yorum bulundu:

Lütfen hasMany dernek herhangi bir kayıt dönmezse birincil anahtar ve ForeignKey sütun türleri aynı olup olmadığını kontrol edin. Bir int ve diğer karakter ise, dernek (ve hiç bir uyarı) herhangi bir kayıt almazsınız.

Ama, yukarıda gördüğünüz gibi, anahtar sütunları (CakePHP onları yanı sıra Oracle için olmak istiyor ne olduğu) iki ucunda da sayılar

0 Cevap