2017-07-17 1 views
0

Je veux créer une bonne relation b/w deux table. Ainsi, lorsque j'obtiendrai les données du tableau lease, je pourrai également obtenir les données du tableau price. Le tableau des prix peut avoir plusieurs ID de la table lease.créer une association appropriée dans cakephp 3

La structure des tables sont

Lease Table

enter image description here

Tableau des prix

enter image description here

id o f lease table en rapport avec lease_id du tableau de prix.

J'ai essayé avec le code suivant, mais je n'ai pas pu obtenir de données.

class LeasesTable extends Table { 

    /** 
    * Initialize method 
    * 
    * @param array $config The configuration for the Table. 
    * @return void 
    */ 
    public function initialize(array $config) { 
     parent::initialize($config); 

     $this->table('leases'); 

     $this->primaryKey('id'); 

     $this->addBehavior('Timestamp'); 

     $this->belongsTo('Offices', [ 
      'foreignKey' => 'office_type', 
      'joinType' => 'INNER' 
     ]); 
     $this->belongsTo('Countries', [ 
      'foreignKey' => 'country_id', 
      'joinType' => 'INNER' 
     ]); 
     $this->belongsTo('Areas', [ 
      'foreignKey' => 'area_id', 
      'joinType' => 'INNER' 
     ]); 
     $this->belongsToMany('id', [ 
      'foreignKey' => 'lease_id', 
      'joinType' => 'INNER', 
      'joinTable' => 'Prices', 
     ]); 
    } 

Répondre

2

Association que vous avez décrit est Lease a beaucoup prix - donc vous devez utiliser le code suivant dans LeasesTable.php:

$this->hasMany("Prices", [ 
    "foreignKey" => "lease_id" 
]); 

Plus d'info: HasMany Associations