tp 5とtp 3の違い

2331 ワード

もっと読む
TP 5は大きな変化をして、更に柔軟で、太っていなくなりました.いくつかのエキサイティングな機能を加えました.例えばphp 7、unittestなどです.
1ルートの変化
tp 3でルーティングを定義する
'URL_ROUTE_RULES' => array( //      
	    '/^password(\/)*$/'               => '/Admin/Auth/password',
	),
このように使うhttp://xx.com/password 和http://xx.com/Admin/Auth/password
同じアドレスにアクセスできます.http://xx.com/Admin/Auth/password
tp 5ではだめです.Route.php 1251行に会いましょう.

if (isset(self::$rules['name'][$name]) || isset(self::$rules['name'][$name2])) {
                throw new HttpException(404, 'invalid request:' . str_replace('|', $depr, $url));
            }
ルートに設定のurlが定義されていると、直接アクセスができなくなり、異常が発生します.
'password'            =>  ['admin/auth/password', ['method'=>'get']],
設定されたルートでアクセスするのは正常ですが、admin/auth/passwordにジャンプしません.
http://xxx/password
使う?遣うhttp://xxx/admin/auth/password 訪問会のエラー

[0] HttpException in Route.php line 1252
    :admin/auth/password

                $route = [$module, $controller, $action];
                //             
                $name  = strtolower($module . '/' . Loader::parseName($controller, 1) . '/' . $action);
                $name2 = '';
                if (empty($module) || isset($bind) && $module == $bind) {
                    $name2 = strtolower(Loader::parseName($controller, 1) . '/' . $action);
                }

                if (isset(self::$rules['name'][$name]) || isset(self::$rules['name'][$name2])) {
                    throw new HttpException(404, 'invalid request:' . str_replace('|', $depr, $url));
                }
            }
            return ['type' => 'module', 'module' => $route];
        }

2 Modelのfind、selectなどの方法で戻ってくるのはModelオブジェクトで、データではありません.get Data()で元のデータを取得することができます.Modelにおいて定義された方法はdb()を使用してデータを照会し、方法をcontrolに暴露して呼び出しすることを推奨する.
3 foreachでModel()->save();データを追加して、必ず->isUpdateを加えてください.そうでないと最初の会議だけがinsertです.他は全部udateになります.この見積もりはバグです.