ログイン機能
Laravelにてログイン機能を追加しようと思っていて
「laravel ログイン機能」と検索すると
dockerを利用していない場合の、追加方法が出てきたりするので、以下のサイトを参考にさせていただきました!
また、以下のコードの意味がよく分からなかったため
% docker-compose exec app bash
こちらの記事も参考にさせていただきました!
出先のwi-fiを利用して、npm install を使用としたら
エラーが起きてしまいました。
これはプロキシ環境下において、設定を変更する必要があったため
上記サイトを3上にさせていただきました。
ちなみに、プロキシについてよく理解していなかったので
以下のサイトも参考にさせていただきました!
簡単に言うと、自分のデバイスをネットに繋ぐ際の仲介サーバーです。
プロキシサーバーによって安全にネットを利用することができるといっても過言ではないでしょう。
ログイン画面の追加方法
「laravel ログイン機能」と検索すると、ログイン機能を導入するためのコードは載っているのですが
どうやって、ブラウザ上で実装するかが載っていませんでした。
そこで、簡単に紹介していこうと思います。
上記サイトらを見て、諸々インストールすると
Auth::routes();
Route::get('/home', [HomeController::class, 'index'])->name('home');
こんなコードが追加されているはずです。
これは、homeという名前を使うことで、ログイン画面を導くことができるよ。という意味なので
例えば、index.phpにログインリンクを追加したいとすると
<a href="{{ route('home') }}">ログイン</a>
今の悩み
ログインしようとしても、そもそも登録していないので
ログインできない。
以下のようなエラーが出てしまいました。
おそらく、登録情報を保存するデータベース(テーブル)が設定されていないよ。
ということだと思います。
ますはエラーコードで検索してみて
ダメならば、テーブルを作成する方法を調べてみたいと思います。
最後に
最近、エラーに3日間くらいハマっていたおかげか
エラーに対しての対処法がスラスラ思い浮かぶようになりました。
エラーが1番成長させてくれるのかもしれないなと思った、今日この頃でした。
追記(2022/02/20)
その後、多くのエラーに見舞われ
DBやDockerなどの知識が増えて、全体像がわかってきたので追記します。
まず、上記を参考に
ユーザー認証機能をインストールすると
ログイン画面がブラウザに出てこないと思います。
これがルーティングがされてないからなんですね。
なので、まずルーティングをします。
ルーティング
//view('welcome')になっているところをauth.loginに変更します。
Route::get('/', function () {
return view('auth.login');
});
これは、localhostにアクセスされたら
元々設定されている初期画面を表してくれ。という設定を
ログイン画面を表示してくれと指示した感じです。
マイグレーションもするよ
ルーティングができて、「ログインしちゃうぞっ!」と思って
ぽちぽちするとエラーが出てくるはずです。
これは、まだデータベースにテーブルが作成されていないからです。
どういうことかと言うと、
データベースにこんな情報登録するよ
という枠組みを用意できていないのです。
簡単に言うと、エクセルやスプレッドシートの項目を書いてすら
いないので、まず、どんな項目で登録するか教えてくれ
ってことなのです。
今回は、パッケージをインストール時点で
データベースのテーブルであるuser_table.phpという
マイグレーションファイルがあるので
そちらを、現在使用しているDockerに繋ぎます。
その方法は簡単で
./vender/bin/sail artisan migrate
でできちゃいます。
すると、データベースとの連結ができて
登録情報が保存ができるので完成です★