CakePHP 2.x から 3.0 へのアップグレード、cakephp2.x から 3.0 へのアップグレード_PHP チュートリアル

WBOY
リリース: 2016-07-13 09:57:11
オリジナル
1132 人が閲覧しました

CakePHP 2.x から 3.0 へのアップグレード、cakephp2.x から 3.0 へのアップグレード

CakePHP 2.x => 3.x アップグレード手順

1. コントローラー層

1.find('list')
オリジナルの 2.x では、このメソッドはオプションで 'fields' を指定することで key=>value を実装していましたが、3.x では 'keyField' と 'valueField' に置き換えられました。 ' オプションで戻り値を toArray() を使用して変換する必要があります

2.find('first')、find('count')

3.x ではこれら 2 つのパラメータが完全に放棄され、find()->first() と find()->count() を使用して置き換えます。

3.クエリに関連するテーブルを検索する場合は、「contain」属性を追加する必要があります。Cake 3.x はデフォルトではテーブルを関連付けません。

4.findById

**? 関連するドキュメントが見つかりません?**

2.x の findById の形式は ($id, array $fields) です
3.x にはパラメーター ($id) が 1 つだけあります。データをフィルターするには select(array $fields) メソッドを渡す必要があります

5.Component->initialize()

2.x は、initialize(Controller $Controller) を使用して、コンポーネントを呼び出すコントローラーを取得します

3.x は、initialize のパラメーターをInitialize(array $config) に変更し、$controller を使用します= $ this->_registry->getController();Get

6.SessionComponent

3.x はこのコンポーネントを放棄し、$this->request->session() に置き換えました


2.モデルレイヤー

1.Associations

2.x は属性を定義することで関連付けを実現します

3.x は表の初期化メソッドで $this->belongsTo、$this->hasMany、$this->belongsToMany、$this を呼び出す必要があります - >addAssociations とその他の実現メソッド

2.Validation

2.x は、validate 属性を定義することでデータ検証を実装します

3.x は、これを実現するために Table で validationDefault(Validator $validator) メソッドを定義する必要があります

3.virtualFields

この属性は 3.x で廃止されました。使用する必要がある場合は、Entity にメソッドを追加する必要があります

例えば、テーブル A に仮想フィールド full_name を定義する必要があります
まず、テーブルAのEntityに保護された関数_getFullName()
を追加する
$_accessibleにfull_nameを追加する
A->findを使用する場合、値はobject->propertyからのみ取得でき、配列からは取得できません

4.field()

**?関連するドキュメントが見つかりません?**
3.x ではこのメソッドが廃止された可能性があり、get() メソッドで置き換えることができます

5.ClassRegistry::init()

3.x このメソッドは廃止されたため、TableRegistry::get() に置き換える必要があります

6.Mysql エイリアス設定

2.x 'fields'=>array('id as table_id') のように、fields 属性に as を追加するだけです
3.x エイリアスを定義する場合は、次のことを行う必要があります'fields '=>['table_id'=>'id'] などのキーを追加します

3. レイヤーを表示する

(ビューレイヤー、2.xのViewフォルダーから3.xのTemplateに移動)

1.$this->Html->url

3.x では、代わりに $this->Url->build を使用してください

4. バグ

1.関連付け

hasManyテーブルの関連付けをクエリする際、フィールドを指定する必要がある場合、フィールドに関連付けキーを追加する必要がありますか? ? ?

このアップグレードガイドは引き続き更新されます~~~~~~

http://www.bkjia.com/PHPjc/984441.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/984441.html技術記事 CakePHP 2.x は 3.0 にアップグレードされ、cakephp2.x は 3.0 にアップグレードされます。 CakePHP 2.x = 3.x アップグレード手順 1. コントローラー層 1.find('list') オリジナルの 2.x では、この方法は次のように指定します。オプションの「フィールド」 key=value 3 を実装するには...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート