PHP Portal » PHP Forum » Entwicklung » Webprogrammierung mit PHP, Perl, usw. » CakePHP Models verbinden

CakePHP Models verbinden 

von
Member
Zitat
Hey Folks,

wie verbinde ich zwei Models bei CakePHP?

ich habe eine Tabelle mit Daten, die eine Referenz-ID auf eine zweite Tabelle haben.

Wie lasse ich mir die Daten nun anzeigen in der View von der Tabelle mit den Daten?
Was muss ich im Controller für die zweite Tabelle schreiben, was muss ich im Model für die zweite Tabelle schreiben?

Werbung

Re: CakePHP Models verbinden 

von
the Boss
Zitat
Verbundene Modelle werden automatisch mitgeladen und bereitgestellt, daher ganz einfach

im Model

PHP Code
1
2
3
4
5
6
7
8
9
10
11
12
13
class Organization extends AppModel { public $name = 'Organization'; public $useTable = 'organizations'; public $primaryKey = 'id'; public $hasMany = array( 'Project' => array( 'className' => 'Project', 'foreignKey' => 'organization_id', 'dependent' => false ) ); }

im Controller

PHP Code
1
$this->data = $this->Organization->findById( 1 );

in der View

PHP Code
1
2
3
4
echo $this->data['Organization']['name']; foreach( $this->data['Project'] as $project ) { echo $project['Project']['name']; }

Re: CakePHP Models verbinden 

von
Member
Zitat
Die Verbindung ist aber nur 1:1, bleibt es dann bei deinem Muster?

Re: CakePHP Models verbinden 

von
the Boss
Zitat
dann hast du $hasOne, und nicht $hasMany

d.h. du hast auch keine Liste von "Project", die du mit foreach durchgehen kannst,
sondern nur ein Element, wleches du direkt mit

$this->data['Project']['name'] ansprechen kannst, wenn wir mal beim obigen Beispiel bleiben.

einfach mal ein print_r( $this->data ); machen, und du siehst, wo was ist.

Schnellantwort