BLOG

Blitz Gateスタッフブログ

BLOG

CakePHP3でURLの表示を変更する方法

書いた人:

CakePHP3 , 技術  

URLimg

どうも、最近忙しさに押されているゆんゆんです。

 

気が付いたら週末ということが続いてますが、なんとか頑張ってます。

 

さて、今回はCakePHP3でURL表示を変更する方法をご紹介します。

 

環境

 

CakePHP 3.2
PHP 5.5.17

 

ルーティングファイルを変更する

 

CakePHPでは.htaccessによるルーティングを行っています。
ただ、これを変更するのはできれば避けたいところですので、
PHPで制御している側で変更します。

 

対象のファイルのパスは下記の通りです。

[CakePHP3ルート]/config/routes.php

 

このファイルの中にある下記の箇所を変更することでいろいろな形にできます。

 

Router::scope('/', function ($routes) {

    .
    .
    .

    /**
     * Connect catchall routes for all controllers.
     *
     * Using the argument `DashedRoute`, the `fallbacks` method is a shortcut for
     *    `$routes->connect('/:controller', ['action' => 'index'], ['routeClass' => 'DashedRoute']);`
     *    `$routes->connect('/:controller/:action/*', [], ['routeClass' => 'DashedRoute']);`
     *
     * Any route class can be used with this method, such as:
     * - DashedRoute
     * - InflectedRoute
     * - Route
     * - Or your own route class
     *
     * You can remove these routes once you've connected the
     * routes you want in your application.
     */
    // ここを変更する
    $routes->fallbacks('DashedRoute');

 

変更できる値はコメントにもある通り「DashedRoute、InflectedRoute、Route」です。
あと、独自ルーティングクラスがある場合は、それを指定可能みたいです。

 

ちなみにそれぞれのルーティング結果も載せておきます。

 

DashedRoute Controller,Actionともチェインケース
InflectedRoute Controller:スネークケース
Action:アッパーキャメルケース
Route Controller,Actionともそのまま

※ケース表記が分からない方はコチラ

 

余談ですが、CakePHP3.1.xまでは「InflectedRoute」でしたが、CakePHP3.2からは「DashedRoute」がデフォルトみたいです。

 


 

いかがでしたか?

 

少しでも役に立てば幸いです。
またいろんな記事を書いていきますよー。

 

それではっ!!!

  • このエントリーをはてなブックマークに追加