mit field() auf verlinkte Modelle zugreifen?

Datenbankobjekte strukturieren und validieren

mit field() auf verlinkte Modelle zugreifen?

Beitragvon mivogtLU am Mi 24. Feb 2010, 08:34

Guten Moregn allseits,

ich würde gerne aus einem Model heraus auf Daten aus einem anderen Model zugreifen.
Beide modelle sind mit hasmany belongstomany verbunden.
Das eine Modell hat als Feld die id des anderen.

Im Model lodgings habe ich zB das Feld Bettenanzahl
Im Model bookingpositions habe ich das Feld lodging_id

Wenn ich nun mit
Code: Alles auswählen
$this->BookingPosition->Lodging->field('Bettenanzahl',array('Lodging.id'=>$this->data['Lodging']['id']));

im bookingpositions Model auf die Bettenanzahl zugreifen will bekomme ich eine Fehlermeldung:

Notice (8): Undefined property: BookingPosition::$BookingPosition [APP
\models\booking_position.php, line 78]
Notice (8): Trying to get property of non-object [APP\models
\booking_position.php, line 78]
Fatal error: Call to a member function field() on a non-object in D:
\x173\xampp\htdocs\myca\app4\myapp\models\booking_position.php on line
78


Kurz und knapp - warum? Was ist falsch??

Gruß

Michael
mivogtLU
 
Beiträge: 46
Registriert: Di 12. Jan 2010, 21:22
Wohnort: 67059
CakePHP-Version: 1.3 final
OS: Linux, Win XP-Vista

Re: mit field() auf verlinkte Modelle zugreifen?

Beitragvon euromark am Mi 24. Feb 2010, 10:59

man muss lernen fehlermeldungen zu verstehen
in der regel sagen die einem alles...

du kannst nich im Model das model selbst nochma referenzieren

$this->Lodging einfach nur!
euromark
 
Beiträge: 397
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 1.2.4
OS: Windows

Re: mit field() auf verlinkte Modelle zugreifen?

Beitragvon mivogtLU am Mi 24. Feb 2010, 11:01

habe ich versucht, selber Fehler

$numberOfBeds = $this->Lodging->field('Bettenanzahl',array('Lodging.id'=>$this->data['Lodging']['id']));

liefert

Notice (8): Undefined index: Lodging [APP\models\booking_position.php, line 78]

obwohl das Model für book..pos..

-.-.-.-.
<?php
class BookingPosition extends AppModel {
var $name = 'BookingPosition';
var $displayField = 'id';
//The Associations below have been created with all possible keys, those that are not needed can be removed

// var $validate = array( 'Lodging' => array( 'rule' => array('limitBelegung', 2, 99,99,99), 'message' => 'Das Zimmer ist überbucht!!' ) );
// var $validate =array('Lodging' => array ('limitBelegung' => array('rule'=>'limitBelegung', 'message'=>'naja')));

var $validate=array
(
'AnzahlErwachsene' => array('rule'=>array('limitPersonen'),'required' => true,'message'=>'das sind zu viele für das Bett'),
'AnzahlJugendliche' => array('rule'=>array('limitPersonen'),'required' => true,'message'=>'das sind zu viele für das Bett'),
'AnzahlKinder' => array('rule'=>array('limitPersonen'),'required' => true,'message'=>'das sind zu viele für das Bett'),
);

var $belongsTo = array(
'Booking' => array(
'className' => 'Booking',
'foreignKey' => 'booking_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
'Bookingstatus' => array(
'className' => 'Bookingstatus',
'foreignKey' => 'bookingstatus_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
'Lodging' => array(
'className' => 'Lodging',
'foreignKey' => 'lodging_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
-.-.-.-.-
und das für lodgings
var $hasMany = array(
'BookingPosition' => array(
'className' => 'BookingPosition',
'foreignKey' => 'lodging_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
)
-.-.-.-.-.

miteinander verbunden sind und es laufen sollte ...

Gruß

Michael
mivogtLU
 
Beiträge: 46
Registriert: Di 12. Jan 2010, 21:22
Wohnort: 67059
CakePHP-Version: 1.3 final
OS: Linux, Win XP-Vista

Re: mit field() auf verlinkte Modelle zugreifen?

Beitragvon euromark am Mi 24. Feb 2010, 12:03

das is nich der selbe fehler, sondern ein völlig anderer
du gibst hinten im array was rein, was es gar nich gibt...
deswegen undefined INDEX
euromark
 
Beiträge: 397
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 1.2.4
OS: Windows


Zurück zu Models

Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 1 Gast

cron