Kann ich ein Modell innerhalb eines anderen Modells in CakePHP verwenden?


Answers

Sie können Instanzen anderer Modelle innerhalb eines beliebigen Modells / Controllers mithilfe einer dieser beiden Methoden erstellen.

Wenn Sie Cake 1.2 verwenden:

App::import('model','Attribute');
$attr = new Attribute();
$attr->save($dataYouWantToSavetoAttribute);

Wenn Sie Cake 1.1 verwenden:

loadModel('Attribute');
$attr = new Attribute();
$attr->save($dataYouWantToSavetoAttribute);
Question

Kann ich ein anderes Modell in einem Modell verwenden?

Z.B.

<?php
class Form extends AppModel
{
    var $name='Form';
    var $helpers=array('Html','Ajax','Javascript','Form');
    var $components = array( 'RequestHandler','Email');

    function saveFormName($data)
    {
        $this->data['Form']['formname']=$data['Form']['formname'];
        $this->saveField('name',$this->data['Form']['formname']);
    } 

    function saveFieldname($data)
    {
        $this->data['Attribute']['fieldname']=$data['Attribute']['fieldname'];
    }

}
?>



In CakePHP 1.2 ist es besser zu verwenden:

ClassRegistry::init('Attribute')->save($data);



Wenn Sie Model_B in Model_A verwenden möchten, fügen Sie diese Zeile am Anfang der Model_A-Datei hinzu:

App::uses('Model_B_ClassName', 'Model');

und dann können Sie es in Model_A verwenden. Beispielsweise:

$Model_B = new Model_B_ClassName();
$result = $Model_B->findById($some_id);



var $uses = array('ModeloneName','ModeltwoName');

Mit $uses Eigenschaft $uses können Sie mehrere Modelle im Controller verwenden, anstatt loadModel('Model Name') .

App::import('model','Attribute');

ist ein Weg, ein Modell in ein anderes Modell zu verwenden. Der beste Weg wird sein, Assoziationen zu nutzen.