thinkphp でルートを変更するには 2 つの方法があります: 1. Route.php ファイルの rules() メソッドを使用して、ニュース ルートを記事ルートに直接変更します。コードは "rule('article' ,'index/News /index')"; 2. コントローラーでルーティング ルールを動的に定義します。コードは "rule('news/:id', 'index/News/read')->model(['id ' => ' id'])"。
このチュートリアルのオペレーティング システム: Windows 10 システム、thinkphp6.1.2 バージョン、Dell G3 コンピューター。
thinkphp では、ルーティング ルールを定義することで、URL アドレスをカスタマイズし、対応するコントローラー メソッドにディスパッチできます。
ルーティング ルールを変更するには、次の 2 つの方法があります:
1. プロジェクト ディレクトリにあるroute.php ファイルで直接変更します。 /route ディレクトリ。
以下は、ニュース ルートを記事ルートに変更するサンプル コードです。
<?php use think\Route; // 修改/news路由规则为/article Route::rule('article','index/News/index');
上記のコードは、ThinkPHP が提供する rules() メソッドを呼び出し、パスします。ルート URL とパラメーターをコントローラー メソッドに渡します。注:
最初のパラメータは、ルーティング URL アドレスのサフィックス (ここにある記事など) を表します。
2 番目のパラメーターは、ルートによってポイントされるコントローラーのパスを示します。たとえば、index/News/index をポイントします。
#2. コントローラーでルーティング ルールを動的に定義する この方法は通常、プログラム実行時の変更に基づいてルーティング ルールを動的に生成するために使用されます。
以下は、クロージャー関数を定義してルーティング ルールを動的に生成するサンプル コードです。
<?php namespace app\index\controller; use think\Route; class Index { public function index() { // 动态生成路由规则 Route::rule('news/:id', 'index/News/read')->model(['id' => 'id']); return "动态路由规则生成成功"; } }
上記のコードは、インデックス メソッドにアクセスするときにインデックス メソッドを動的に生成します。 Index コントローラー news/:id ルーティング ルールを Index/News/read コントローラー メソッドにマップし、パラメーターをバインドするときにモデル バインディングを使用して SQL クエリ ステートメントを自動的に生成します。
以上がthinkphpでルーティングを変更する方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。