2022年08月25日

身近なところだとwordpressやらECCUBEを触った時にも思ったんですが、サイトのURLにアクセスした際に素直にindexファイルにアクセスしないですよねフレームワークって。wordpressはまだ素直だと感じましたが。
そんなわけでこのLarabelで作成したプロジェクトにアクセスした際に、まずどう飛ばしてどのファイルの内容を引っ張ってきて前回の記事の最後で出した画面を表示できるのか?といった仕組みを理解したいと思います。
前回何気なく開いたトップページのURLhttp://127.0.0.1:8000なのですが、これは実はMAMPでApatch動かしてたから使えていたのではなくLaravelの基本機能で
php artisan serve
これを該当プロジェクトのフォルダのターミナルで打ち込んで起動する仮想サーバーだったようです。すごい…

そしてこちらが最初に表示される画面。

こちらが前回Laravelをインストールしたフォルダ。indexファイルは見当たらないです。wordpressやECCUBEはインクルードでトップページ用のphpを引っ張ってくるという仕組みだった気がするのですが、Laravelは「ルーティング」という機能を使っているようです。
調べると、Laravel対応のサーバーでトップページアクセスするとroutes/web.phpに飛ばされるようです。
web.phpはデフォルトでは下記のようなコードになっています。
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
上のuse〜はよくわからないのですが(たぶんライブラリをインクルードしてる?)、Route::get~に関しては第一引数のスラッシュ(つまりトップページ)の場合は、view以降の第一引数に入っている何かを表示するという関数と思われます。
調べてみるとroutesと同階層のresoucesのフォルダに入っているファイルがいわゆるviewのファイルのようで、resouces/views/welcome.blade.phpのファイルがweb.phpで呼び出されているファイルのようです。頭文字で呼び出すんですね。
上記の仕組みを利用するとこのようなことができます。
Route::get('/plando', function () {
return 'palndoと入力した結果です';
});
このようなコードをweb.phpに追記します。
そして、アドレスバーのURLをhttp://127.0.0.1:8000からhttp://127.0.0.1:8000/plandoに変更してみます。

するとこのように表示画面が変更されます。
先ほど変更した/plandoの部分を入力値やデータベースの値などで変更して表示する画面を変えていくという仕組みみたいですね。
次回はその入力値を決定する部分Contorollerを作っていこうと思います。

お仕事のご依頼やご相談、弊社サービス内容に関してなど、お気軽にご相談ください。