Heim > Backend-Entwicklung > PHP-Tutorial > CakePHP 2.x-Upgrade auf 3.0

CakePHP 2.x-Upgrade auf 3.0

WBOY
Freigeben: 2016-08-08 09:25:57
Original
945 Leute haben es durchsucht

CakePHP 2.x => 3.x Upgrade-Anweisungen

1. Controller-Ebene

1.find('list')
Im Original 2.x implementiert diese Methode key=>value
durch die Angabe der „fields“ in der Option 3.x verwendet das „keyField“. und 'keyField' in der Option 'valueField' zu ersetzen, muss der Rückgabewert mit toArray()

konvertiert werden

2.find('first'), find('count')
3.x hat diese beiden Parameter vollständig aufgegeben und verwendet find()->first() und find()->count () um

zu ersetzen

3. Wenn Sie nach Abfragen suchen, die sich auf Tabellen beziehen, müssen Sie das Attribut „enthalten“ hinzufügen. Cake 3.x verknüpft Tabellen standardmäßig nicht miteinander

4.findById
**?Kein relevantes Dokument gefunden?**
Das Format von findById in 2.x ist ($id,array $fields)
3.x darf nur einen Parameter haben ($ id) müssen Sie die Daten mit der Methode select(array $fields)

filtern

5.Component->initialize()
2.x ruft den Controller ab, der die Komponente aufruft, durch initialize(Controller $Controller)
3.x hat den Parameter von initialize in initialize(array $config) geändert , holen Sie sich

über $controller = $this->_registry->getController();

6.SessionComponent
3.x hat diese Komponente aufgegeben und durch $this->request->session()

ersetzt

2. Modellebene

1.Assoziationen
2.x realisiert Assoziationen durch Definieren von Attributen
3.x muss $this->belongsTo, $this->hasMany, $this- in der Initialisierungsmethode in Tabelle > aufrufen ;belongsToMany, $this->addAssociations und andere Methoden, um

zu erreichen

2.Validierung
2.x implementiert die Datenvalidierung durch Definition des Validierungsattributs
3.x muss die Methode validationDefault(Validator $validator) in der Tabelle definieren, um

zu implementieren

3.virtualFields
Dieses Attribut wurde in 3.x aufgegeben. Wenn Sie es verwenden müssen, müssen Sie die Methode
in Entity hinzufügen. Sie müssen beispielsweise das virtuelle Feld full_name in der Tabelle definieren A
. Zuerst müssen Sie das virtuelle Feld full_name in Tabelle A in der Entität definieren. Fügen Sie dann full_name zu $_accessible
   hinzu kann nur über die Objekt->-Eigenschaft und nicht über das Array
abgerufen werden

4.field()

**? Kein relevantes Dokument gefunden?**
3.x hat diese Methode möglicherweise aufgegeben und kann durch die get()-Methode
ersetzt werden

5.ClassRegistry::init()

3.x Diese Methode wird aufgegeben und muss durch TableRegistry::get()
ersetzt werden

6. MySQL-Alias-Einstellung

2.x muss nur as im Feldattribut hinzufügen, z. B. 'fields'=>array('id as table_id')
3.x muss ein definieren Alias ​​Verwenden Sie einen Schlüssel zum Hinzufügen, z. B. 'fields'=>['table_id'=>'id']

3. Ebene anzeigen

(Ansichtsebene, verschoben aus dem Ansichtsordner von 2.x in die Vorlage von 3.x)

1.$this->Html->url

Verwenden Sie in 3.x $this->Url->build anstelle von

4. Fehler

1. Assoziationen

Müssen Sie beim Abfragen von hasMany-Tabellenassoziationen, wenn Sie Felder angeben müssen, Assoziationsschlüssel zu den Feldern hinzufügen? ? ?

Diese Upgrade-Anleitung wird weiterhin aktualisiert~~~~~~

Das Obige stellt das Upgrade von CakePHP 2.x auf 3.0 vor, einschließlich aller Aspekte. Ich hoffe, es wird Freunden, die sich für PHP-Tutorials interessieren, hilfreich sein.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage