laravel5.7でloginページを作りたいとします。
構築の流れ
1. コマンドラインphp artisan make:controllerでloginをつくる
2. /routes/web.phpでLoginControllerのgetメソッドを書く
3. /app/Http/Controllers/LoginController.phpでviewを書く
4. /resources/views/login.blade.phpでviewを書いていく
5. php artisan server –host でサーバーを立てる
6. ブラウザで192.168.35.10:8000/login で表示確認
1. コマンドラインphp artisan make:controllerでloginをつくる
Laravelは命名規則は他のフレームワークに較べて、然程厳しくないと言われています。
しかしながら、Controllerはキャメル記法が推奨されています。
キャメル記法とは単語の頭を大文字にする記述方法です。
例えば、userのcontrollerならUserControllerとします。複数形が推奨されており、UsersControllerの方が良いとされています。ここでは、キャメル記法に習ってLoginControllerとします。
[vagrant@localhost zeus]$ php artisan make:controller LoginController
Controller created successfully.
すると、/app/Http/Controllers/ 配下に、LoginController.phpが出来ます。
2. /routes/web.phpでLoginControllerのgetメソッドを書く
web.phpに以下のように$uriと$callbackを追加します。これは、LoginController.phpの”login”メソッドを呼び出せ、という意味です。上の’/’に関しては、ホームディレクトリにアクセスがあった場合には、AccountControllerのindexメソッドを呼び出せ、という意味になります。
Route::get('/', 'AccountController@index'); Route::get('/login', 'LoginController@login');
なお、Httpリクエストに対して定義できるメソッドは以下のようになります。
Route::get($uri, $callback); // GETリクエストに対してのルーティング Route::post($uri, $callback); // POSTリクエストに対してルーティング 主にフォームのPOSTリクエスト Route::put($uri, $callback); // PUTリクエストに対してルーティング Route::patch($uri, $callback); // PATCHリクエストに対してのルーティング Route::delete($uri, $callback); // DELETEリクエストに対してのルーティング Route::options($uri, $callback); // OPTIONSリクエストに対してのルーティング
3. /app/Http/Controllers/LoginController.phpでviewを書く
上記1で作成されたLoginController.phpに、loginメソッドを書きます。
viewのlogin.blade.phpを読み込みます。
namespace App\Http\Controllers; use Illuminate\Http\Request; class LoginController extends Controller { public function login(){ return view('login'); } }
4. /resources/views/login.blade.phpでviewを書いていく
なんでもいいですが、hello laravelとしておきます。
<!DOCTYPE HTML> <html> <head> <title>login</title> </head> <body> <h1>Hello Laravel</h1> </body> </html>
5. php artisan server –host でサーバーを立てる
サーバーを立ち上げます。
[vagrant@localhost zeus]$ php artisan serve –host=192.168.35.10
Laravel development server started:
6. ブラウザで192.168.35.10:8000/login で表示確認