PHP フレームワーク Laravel 8 : ルート設定
※ 以下のフォルダに Laravel をインストールしたこととする。
C:\Site01
|
|
※ 以下のコマンドを実行し HTTP サーバを起動したこととする。
(ブラウザで「http://127.0.0.1/」へアクセスしたら表示される)
C:\Site01> php artisan serve
|
|
※ ルート設定は「C:\Site01\routes\web.php」に記載する。 | |
1. | ブラウザで「http://127.0.0.1/」へアクセスした場合の内容を変更する。 |
// 直接出力。
Route::get( '/', function()
{
return 'Hello world!';
} ); |
|
// blade を使用して出力。
Route::get( '/', function()
{
return view( 'hello' );
} ); |
|
// コントローラを使用して出力。(Laravel 8)
Route::get( '/', [ HelloController::class, 'showhello' ] );
|
|
// コントローラを使用して出力。
Route::get( '/', 'HelloController@showhello' ] );
|
|
2. | 引数を 1 つ受け取る場合。ブラウザは「http://127.0.0.1/mike」の様にアクセスする(「mike」は仮で任意の文字列を指定する事ができます)。 |
// 直接出力。
Route::get( '/{name}', function( $name )
{
return 'Name: ' . $name;
} ); |
|
// blade を使用して出力。
Route::get( '/{name}', function( $name )
{
return view( 'hello1', compact('name') );
} ); |
|
// コントローラを使用して出力。(Laravel 8)
Route::get( '/', [ HelloController::class, 'showhello1' ] );
|
|
// コントローラを使用して出力。
Route::get( '/', [ 'HelloController@showhello1' ] );
|
|
3. | 引数を 2 つ以上受け取る場合。ブラウザは「http://127.0.0.1/mike/16」の様にアクセスする(「mike」「16」は仮で任意の文字列を指定する事ができます)。 |
// 直接出力。
Route::get( '/{name}/{age}', function( $name, $age )
{
return 'Name: ' . $name . '<br />Age: ' . $age;
} ); |
|
// blade を使用して出力。
Route::get( '/{name}/{age}', function( $name, $age )
{
return view( 'hello2', compact('name', 'age') );
} ); |
|
// コントローラを使用して出力。(Laravel 8)
Route::get( '/', [ HelloController::class, 'showhello2' ] );
|
|
// コントローラを使用して出力。
Route::get( '/', [ 'HelloController@showhello2' ] );
|
|
4. | サブフォルダで表示する場合。ブラウザは「http://127.0.0.1/userinf/」の様にアクセスする。 |
// 直接出力。
Route::get( '/userinf', function()
{
return 'User information.';
} ); |
|
// blade を使用して出力。
Route::get( '/userinf', function()
{
return view( 'userinf' );
} ); |
|
// コントローラを使用して出力。(Laravel 8)
Route::get( '/userinf', [ HelloController::class, 'showhello' ] );
|
|
// コントローラを使用して出力。
Route::get( '/userinf', [ 'HelloController@showhello' ] );
|
|
5. | サブフォルダで引数を 2 つ以上受け取る場合。ブラウザは「http://127.0.0.1/userinf/mike/16」の様にアクセスする(「mike」「16」は仮で任意の文字列を指定する事ができます)。 |
// 直接出力。
Route::get( '/userinf/{name}/{age}', function( $name, $age )
{
return 'Name: ' . $name . '<br />Age: ' . $age;
} ); |
|
// blade を使用して出力。
Route::get( '/userinf/{name}/{age}', function( $name, $age )
{
return view( 'hello2', compact('name', 'age') );
} ); |
|
// コントローラを使用して出力。(Laravel 8)
Route::get( '/userinf', [ HelloController::class, 'showhello2' ] );
|
|
// コントローラを使用して出力。
Route::get( '/userinf', [ 'HelloController@showhello2' ] );
|
|
6. | コントローラ HelloController(HelloController クラス)の内容を以下に示す。 |
namespace App\Http\Controllers; use Illuminate\Http\Request; class HelloController extends Controller { public function showhello() { return 'Hello world!'; } public function showhello1( $name ) { return 'Name: ' . $name; } public function showhello2( $name, $age ) { return 'Name: ' . $name . '<br />Age: ' . $age; } } |
以上です。