Kann ich ein Modell in einem anderen Modell in CakePHP verwenden?



Answers

Sie können Instanzen anderer Modelle aus einem beliebigen Modell / Controller 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);



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

Wenn Sie $uses Eigenschaft $uses , können Sie mehrere Modelle im Controller anstelle von loadModel('Model Name') .

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

ist die Möglichkeit, ein Modell in ein anderes Modell zu verwenden. Der beste Weg wird die verwendete Assoziation sein.




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);



Links



Tags

cakephp