Laravel ルーティングとコントローラで躓いた点

SCOUTERでフロントエンドエンジニアをしているhirokinishizawaです。

今回弊社で使用しているLaravelをやり始めることにしたのでアウトプットをするためにインプットをするという自分のための記事を書いていこうかと思います!ちなみにサーバーサイドはprogateでPHPをやったぐらいです!

はじめに

勉強する際PHPフレームワーク Laravel入門という本を使用しているのですが、その内容に沿って今回はLaravelインストールまでと、ルーティングとコントローラを使用して躓いた点・解決策を書いていこうかと思います。

環境

PHP Composer Laravel
7.0.9 1.6.5 5.5.0

仕様エディタ: PhpStorm

Composer

LaravelはComposerを活用してインストールとパッケージの管理をしています。

インストールをしていない方はこちらからインストールしてください。

またコマンドでインストールしたい場合、インストールしたいディレクトリに移動して

curl -sS https://getcomposer.org/installer | php

でインストールしできます。

Laravelをインストール

インストールする方法はLaravelのインストーラーかcomposerのcreate-projectでインストールする2つの方法があります。 今回はcomposerを使いました!

composer create-project --prefer-dist laravel/laravel <プロジェクト名>

これでプロジェクトが作成できるかと思います。次に

php artisan serve

を実行してhttp://localhost:8000にアクセスし f:id:hiroki-nishizawa:20180802043134p:plain このような真っ白な画面が表示されれば、環境構築完了です!

ちなみに後ろに --port=8005のように後ろにつければいくつかのローカルサーバーをたてれます この場合はhttp://localhost:8005にアクセスします。

使っていて躓いた点

Laravel入門を読むのが2回めということもあり、前回読んだときよりも理解できていると思い自信満々で書いたのにつまずいたことを書いていこうかと思います。

ルーティングを作成して404 not foundになった

何度コードを見直してもページがないと言われ、エラーコードもないので完全お手上げ状態だったのですが上司に質問をした結果routeがcacheされてただけでした。 自分でもいつやったのかわからないですが、php artisan route:cacheしていたらしく、php artisan route:clearで解決できました。

Controllerファイルが使えない。

controllerファイルはターミナルからコマンドで作成できます

php artisan make:controller <コントローラ名>

こちらのコマンドを先程作成したリポジトリに移動して実行することでapp/Http/Controllersにcontrollerファイルが作成されます。

最初コマンドがあることを知らず見よう見まねでファイルを作成したのですが、namespaceをApp/Http/~なのに app/Http/~と書いたりclassを間違えたりして動かないことがありました;;

コマンドを使って作成すればこのようにnamespaceやファイル名のclassが書いてあるのでタイプ間違えもなく安心です!

gyazo.com

最後に

次回

今回はルーティングとコントローラでレイアウト作成をするという目標だったためhtmlをコントローラに書いたのですが、laravelにはbladeというテンプレートがあり<?php echo ~;?>みたいな記述をする必要がなかっりレイアウト作成において便利なので次回はvueとbladeを組み合わせてなにか作成してみようかと思います!

イベント開催

LINEさんに会場をお借りしてnuxtmeetup#4 8/6(月)本日開催します! ライブ配信もいたしますのでぜひご視聴ください!