laravel5・ajax・jqueryでPOSTするサンプル

laravel5

西暦を平成○○年に変換する、laravelフレームワークを適応したajaxのサンプル

↓の記事のlaravel5適応版。

デモページ

サンプルコード

routes.php

ページの表示はルートディレクトリでもいいのですが、わかりやすく/heiseiにアクセスしたら、heisei.phpが表示されるという仕様になっています。

ajax関係も処理に関しては、コントローラーheiseicon内メソッドexchange()で一括して処理を行います。

heisei.php

heisei.phpはviewsディレクトリに。

heiseicon.php

heisei.js

heisei.jsはpublic内にjsディレクトリを作成し、そこに収納。

解説

重要なのはajaxでどうやって値をコントローラー(heiseison.php)に受け取らせるかと、
受け取った値を処理してから、jsファイルにどうやって値を返すか。

これには

この二つを使います。

フレームワークを適応していないサンプルコードでは、jsファイルから値を受け取るには$_POST[]、値をjsファイルに戻すにはechoを使用していましたが、上の二つはこれらの代わりになります。

Input::get()とResponse::make()と使い方

コントローラーの冒頭に二つのクラスを追加してあげます。

これで、InputとResponseメソッドが使用できます。
これを追加しないと、 例えばResponceだと

Responseクラスを追加してくださいというエラー

Responceクラスなんてねーよ!と怒られます。

Class ‘Input’ not found……だと?

追加するだけで使用できればいいのですが、おそらくlaravel5.2の初期設定だとInputクラスがlaravel内で使用できるものとして定義されていません。
なのでInputを追加しても

Inputクラスを追加してくださいというエラー

Inputクラスなんてねーよ!とやはり怒られます。

app.phpにInputを追加する

configディレクトリからapp.phpを開きます。

下の方に’aliases’という項目がありますので、そこに上のように

を追加してあげます。

これでInputクラスが定義されたので、使用できるはずです。
あと”Input”は”input”だとエラーになります。

こういったクラス名は大文字小文字区別されていますのでそこも注意。