LoginSignup
0
2

More than 1 year has passed since last update.

初心者がLaravelでWebサービスを作るまで

Last updated at Posted at 2022-04-16

現在開発中ですので随時更新中です!!

環境構築
Dockerで環境構築
MySQLのコンテナ内の/etc/my.cnfをchmod 444 my.cnfなどで読み取り専用にする。
"Ports are not available..."はPowershellでnetstat -ano | Select-String ":3306"、taskkill /F /PID 4545でポートを開放。

phpMyAdminはDockerコンテナ内の/etc/phpmyadmin/config.inc.phpをホストにコピーしてパスワードをMySQLのパスワードと同じに編集して、編集ファイルを/etc/phpmyadmin/config.inc.phpにコピーする。

設定周りをいじったら、php artisan config:cacheでキャッシュをクリアにすると解決することがある。Docker Desktopや本体の再起動が有効な場合もよくある。

開発
ホーム画面と主要画面の作成。

ホーム画面と主要画面のレイアウトとコントローラを作成し、ルーティングを設定。
nl2br,csrfなどに配慮。

テーブルとマイグレーションの作成
MySQLコンテナ内でCREATE DATABASE foobareats;でデータベースを作成。
Appコンテナ内でphp artisan make:migration create_foobars_table --create=foobarsでテーブルとマイグレーションファイルを作成。
マイグレーションファイルでカラムの設定。

ユーザ情報を渡す。
主要画面でPOST送信するので、モデルでリレーションメソッドを作り、コントローラで動的プロパティとを呼び出す。
Eloquentのモデルはテーブルの名前を明示的に指定しないかぎり、クラス名を複数形のスネークケースにしたものが、テーブル名として使用される。Foobarクラス->foobarsテーブルを採用。
N+1問題を解消するためにFoobar::with('user')->get();などとしてeagerloadする。
不正なリクエスト対策として$fillableを記述。

Selectboxの値を渡す。
マイグレーションファイルとモデルを作成。
php artisan migrate でテーブルを作成。
コントローラのcreate()メソッドで
$examples = Example::all();
$examples_name = $examples->pluck('name');
とし、viewに渡す。
{{ Form::select('example', $examples_name, null) }}
で表示。

認証機能を実装
Breezeをインストールする。lang/ja.jsonで日本語仕様へ変更。
ルーティングが上書きされるので環境構築後に導入するべし。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2