ゼロから始めるPHP ~Laravel掲示板のTOP画面を変更する~


今回は前回書いたように「プロジェクトのTOPページを認証画面に変更する」という課題に取り組みましたので書いていきます。

TOP画面を変更する為に行ったこと

①top.blade.php を作成
②web.php の中身の記述を変更

たったこれだけです。

では、実際にどうやって作成したかを解説していきます。

top.blade.php を作成

TOP画面を新しく作成します。
と言っても全く新しいものを作るのは時間的に厳しいので、すでにあるものを流用しました。

①welcom.blade.php をコピーし、top.blade.php にリネーム。
②top.blade.php の中身を変更し、保存。

簡単に言うと以上です。たったこれだけです。
HTMLとCSSで記述されている部分を各自お好きなようにレイアウトを変更すれば良いと思います!
今回は以下のようなページを作成しました。

top.blade.php を作成

次に先ほど作った top.blade.php をlaravelのプロジェクトを起動させた時にTOPページとして表示できるようにルーティングの変更を行います。

現行だと php artisan serve を行い、
http://127.0.0.1:8000」
にアクセスすると以下のような画面が表示されます。
この画面は home.blade.php を表示したものです。

これを
http://127.0.0.1:8000」
にアクセスすると、先程作った top.blade.php が表示されるように web.php を変更します。

以下はweb.php のコードになります。

web.php
<?php
/*
|--------------------------------------------------------------------------
| 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('/', 'PostsController@index')->name('top');
Route::resource('posts', 'PostsController', ['only' => ['create', 'store']]);
Route::resource('posts', 'PostsController', ['only' => ['create', 'store', 'show']]);
Route::resource('comments', 'CommentsController', ['only' => ['store']]);
Route::resource('posts', 'PostsController', ['only' => ['create', 'store', 'show', 'edit', 'update']]);
Route::resource('posts', 'PostsController', ['only' => ['create', 'store', 'show', 'edit', 'update', 'destroy']]);
Auth::routes();
/*Route::get('/home', 'HomeController@index')->name('home');*/
Route::get('/', function () {
    return view('top');
});

変更箇所

変更箇所は2点です。

web.php
/*Route::get('/home', 'HomeController@index')->name('home');*/

web.phpの下から2行目のRouteをコメントアウトして無効にしました。
コメントアウトした理由としては、この記述があるとhome.blade.phpに飛ばされると思ったからです。

【自信ないです。間違っていたらごめんなさい。】

次に

web.php
Route::get('/', function () {
    return view('top');
});

を記述し、top.blade.php が表示されるようなルーティングにしました。

結果

結果としてphp artisan serve の後
http://127.0.0.1:8000」
にアクセスするとtop.blade.php が無事に表示されるようになりました!

参考にした記事

Laravel5.7: トップページを作る
@sutara79