概要
Laravelを業務で使ってるので、延長線上で思い出しながら掲示板でも作ってみたいと思います。😤
このシリーズではPHPとMVCの説明はしていません。
この記事ではプロジェクト作成~モックのトップページを表示するところまで行っています。
php 7.2
laravel 5.8
windows 10
かんたんな設計
簡単に画面を考えます。
・トップページ(掲示板一覧)
・新規投稿ページ(スレッド作成)
・レスポンス返信ページ
そういえば💡
昔phpのみで掲示板つくってました!
こんな感じで作ります。
これのLaravel版みたいな
すごい雑ですが、画面レイアウト的には下記のような感じにします。
プロジェクト作成
こちらの記事でlaravelコマンドが通るまでをやったので、新しくプロジェクトを作ります。
Laravelコマンドがない場合はcomposerから↓
composer global require laravel/installer
新規プロジェクト作成。プロジェクトを作るフォルダに移動して下記コマンドを実行します。
とりあえず名前をcodelike_bbsにしました。
laravel new codelike_bbs
表示確認
作ったプロジェクトフォルダの中にずらーっとフォルダができていると思います。
composer installでモジュールを落としてくる
プロジェクト作成後、composer installで使われているモジュールを落としてきます。
composer install
.env.exampleを.envファイルに変更する
.envはプロジェクトの環境設定ファイルです。グローバルで使う値が定義されてます。
初期は.env.exampleになっているので、.envに変えます。
php artisan serveで起動確認する
php artisan serve
で動かすことができます。
内部的にはたぶんPHPのビルドインウェブサーバーを使っているのかな??
こんな感じになるかと思います。
composer installでエラーが発生した場合
モジュールが足りない場合は下記のようなエラーが発生します。linux系は落としてくると解決するかと思います。
windowsの場合は、入っていればphp.iniを書き換えるといいです。
Problem 1
- Installation request for league/flysystem 1.0.51 -> satisfiable by league/flysystem[1.0.51].
- league/flysystem 1.0.51 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your system.
このエラーの場合はfileinfoモジュールがないと言ってるので
コメントアウトされている行を下のように修正して試してみてください。
;extension=fileinfo
extension=fileinfo
php artisan serveで500エラーが発生した場合
production.ERROR: No application encryption key has been specified.
みたいなエラーが出ることがあります、画面で500エラーになってしまいます。
この場合キーがないと表示されないので下記コマンドで解決しましょう。
php artisan key:generate
view(ビュー)の配置
viewsの直下に現在表示されているwelcome画面があります。
同階層にファイルを配置します。とりあえずトップの一覧だけパパっと置きます。
<!doctype html>
<html lang="ja">
<head>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<title>codelike bbs</title>
</head>
<body>
<nav class="navbar navbar-dark bg-dark">
<a class="navbar-brand" href="#">codelike bbs</a>
</nav>
<div class="container">
<div class="mt-3 mb-3 row justify-content-end">
<a href="" class="btn btn-primary mr-3">新規登録</a>
</div>
<ul class="list-group">
<li class="list-group-item">
<a href="">とりあえずなリスト1</a>
</li>
<li class="list-group-item">
<a href="">とりあえずなリスト2</a>
</li>
<li class="list-group-item">
<a href="">とりあえずなリスト3</a>
</li>
</ul>
</div>
</body>
</html>
top_list.blade.phpで配置しました。
とりあえず、修正は加えていきますがトップ画面はこんな感じで。
リストのところはDBから取ってきた値が動的に一覧になる予定です。
routes/web.php にルート情報が書いてあるので、これを編集します。
このファイルは、ここにアクセスしたらこのページを(もしくはコントローラーを)動かす。みたいな定義を一覧でやっておくファイルです。
Route::get('/', function () {
return view('top_list');
});
welcomeのところをtop_listにします。
これで画面を確認すると下記のように表示されるかと思います。
githubのbranch example1に今回のコードを置いてます。
コメント
[…] Laravel5.8で掲示板を作ってみる(1) […]