終電23時11分って早くね?

都内のIT企業で働くカラオケ大好きエンジニアの雑記

LaravelのRESTフルコントローラーでキャメルケース指定ではまった

Laravelではドキュメントにもあるように、以下のようなコントローラの設定が可能です。

LaravelではRESTフルな命名規則を使ったコントローラのアクションへのルートを定義一つだけで簡単に行えます。

http://laravel4.kore1server.com/docs/controllers#restful-controllers

つまり

○routes.php

Route::controller('users', 'UserController');

○UserController.php

class UserController extends BaseController {

    public function getIndex()
    {
        //
    }
    
    public function getProfile()
    {
        //
    }
    
}

の設定がされていた場合、

http://ドメイン名/users にアクセスすると、
→getIndexメソッド内の処理が実行される。

http://ドメイン名/users/profile
→getProfileメソッド内の処理が実行される。

という形になります。

で、またまた「ドキュメントちゃんと読め事件」が発生するのですが、
メソッドをキャメルケースで指定したい・・・
たとえば、 getProfileEdit とか postAddProfileImg とか。
その場合、どういうURIでアクセスすればよいのかー??わからん。。
と悩むこと小一時間。。答えはドキュメントにありました 笑

もしコントローラアクションを複数の単語で命名するのでしたら、「ダッシュ」で分離したURIでアクセスできます。例えば下のコントローラーアクション、UserControllerは、users/admin-profileというURIに対応します。

要するに、
http://ドメイン名/users/admin-profile
→getAdminProfileメソッド内の処理が実行される。
ということです。

ポイントは「ダッシュ(-)」で単語をつなげるということですね。
ノット「アンダーバー(_)」!