『Laravel入門編2: Laravelの動作を理解しよう (全7回)』
メモ
#01:データベースとルーティングを理解しよう
- MVC:Laravelの主な機能ブロック
- モデル:アプリで扱うデータを保持し、操作する
- ビュー:データの表示形式を記述する
- コントローラ:リクエストに応じて、モデル・ビューを呼び出す
+ ルーティング:リクエストを振り分ける - Laravelでデータベースを操作する機能
- artisan tinker:Laravelアプリの環境を有効にしたまま、コマンドで操作
- Eloquent:データベースのレコードをモデルクラスで処理する、O/Rマッパー
- マイグレーション:データベースの操作を一括実行・取り消し
#02:artisan tinkerでデータベースを確認しよう
- artisan tinkerとは:Laravelに含まれているコマンドラインインターフェイス。
- artisan tinkerを使うと、Laravelアプリの環境を有効にしたまま、Laravelの機能をコマンドで操作できる。
- artisan tinkerを起動する$ php artisan tinker
- PHPのコマンドを実行できる
- exitで終了(または、CTRL+Cキー)
- 主な操作コマンド
- すべてのデータを取り出す>>> Article::all()
- 指定idのレコードを取り出し、カラムを出力>>> $article = Article::find(1)
>>> $article->content - echo関数を使わずに、変数名を記述すると、そのまま値を出力する>>> $article
- レコードを追加する>>> $article = new Article()
>>> $article->content = 'Hello tinker'
>>> $article->save() - 指定idのレコードを取り出し、削除する>>> $article = Article::find(1)
>>> $article->delete()
#03:マイグレーションで、カラムを追加しよう
- マイグレーションとは
一般的に、マイグレーションとは、データベースの中身を一括して移行したり変更したりする作業のこと。Laravelのマイグレーション機能では、データベースの定義や変更を一度に行うことができる。- Laravelでは、データベース設定ファイルを自動生成
- マイグレーションは、2段階で行う。まず、専用のコマンドを使ってマイグレーションファイルを作成して、それから必要な情報を修正して、データベースに適用する。
- カラムを変更する前に、ライブラリを追加
Laravelでカラムを変更するには、doctrine/dbalというライブラリが必要になる。
doctrine/dbalを追加するには、次のコマンドを実行します。$ composer require doctrine/dbal - マイグレーションファイルを自動生成する$ php artisan make:migration add_column_username --table=articles
- マイグレーションファイルにuser_nameカラムを追加するdatabase/migrations/20xx_xx_xx_xxxxxxxx_add_column_username.phpの修正
- upメソッド:データベースに追加する項目を指定する
$table->string('user_name'); - downメソッド:取り消したい項目を指定する
- upメソッド:データベースに追加する項目を指定する
※ 何だろう?うまくいかない。カラムを追加できないな😞
Web上の環境だとうまく行くんだけどな。
自分の環境だと、自分で書いたコードもpaizaからダウンロードしたコードも同じようなエラーが出て、追加できない。
#04:モデルに追加したカラムをビューで表示しよう
- indexビューにカラムを追加
bbs/resources/views/index.blade.phpの編集 - showビューにカラムを追加
bbs/resources/views/show.blade.phpの編集
#05:Laravelのルーティングを理解しよう
- 通信方式を指定するメソッド
Laravelでは、ブラウザとの通信にHTTPメソッドを指定する。情報を表示するだけなら「GET」を使い、情報を投稿する場合は「POST」を使っている。また、記事を削除する場合は「DELETE」メソッドを指定する。 - ルーティングでリダイレクトを設定
「/」にアクセスしたら、「/articles」にリダイレクトする- routes/web.phpの編集
#06:データベースに書き込んでみよう
- 新規投稿のルートを追加する
bbs/routes/web.phpの編集- Route::get('/article/new', 'ArticleController@create')->name('article.new');
- コントローラに、createメソッドを追加する
bbs/app/Http/Controllers/ArticleController.phpの編集 - 記事一覧のビューに、新規投稿リンクを追加する
bbs/resources/views/index.blade.phpの編集
#07:データベースから記事を削除しよう
- ルートを設定する
bbs/routes/web.phpの編集- Route::delete('/article/{id}', 'ArticleController@destroy')->name('article.delete');
- コントローラのdestroyメソッドを追加する
bbs/app/Http/Controllers/ArticleController.phpの編集 - 詳細ページのビューに、削除ボタンを追加
bbs/resources/views/show.blade.phpの編集 - Form用ライブラリのインストールについて
削除ボタンを追加するには、Laravelでフォームを使用する場合に必要となる「laravelcollective/html」というライブラリをインストールする。
$ composer require "laravelcollective/html":"^5.4.0"
※ 自分の環境の場合、上記コマンドのうち赤い部分は記述しない方が良いみたいだった。多分、指定しているバージョンが古いんだろう。
※コメント投稿者のブログIDはブログ作成者のみに通知されます