PHPフレームワーク Laravel入門 ch5 データベース
はじめに
MySQLを使用
マイグレーションとシーディング
マイグレーションとは
データベースを扱うスクリプトを実行して、データベースのバージョンを管理してくれる
マイグレーションファイルのメソッド
- up
- テーブルを生成する
- down
- テーブルを削除する
シーディングとは
データベースのダミーデータ的なやつ
流れ
シーダーファイル作成
php artisan make:seeder SampleTableSeeder
シード追加
SampleTableSeeder.php
public function run(){ $param = [ 'name'=>'makoto', 'email'=>'makoto@makoto.jp' ]; //table(テーブル名) DB::table('sample')->insert($param); }
シーダーファイルの登録
database\seeds\DatabaseSeeder.php
public function run() { //登録 $this->call(SampleTableSeeder::class); }
シーディング実行
php artisan db:seed
実際に動かす。
流れ
- migrationファイルの作成とテーブル作成
- controllerに処理を記述
- Seedファイルの作成と記述
- seedファイルの登録
- シーディング実行
migrationファイルの作成とテーブル作成
php artisan make:migration create_people_table
create_people_table
Schema::create('people', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('name'); $table->string('email'); $table->timestamps(); });
name
とemail
を追加してみる。
controllerに処理を記述
indexアクションに記述する
use Illuminate\Support\Facades\DB; //追加 //省略 public function index(){ $users = DB::table('people')->get(); //追加 $data = [ 'msg'=>'フォームを入力してください', 'users'=>$users ]; return view('form',$data); }
$users = DB::table('people')->get();
は、peopleテーブルからデータ取得して$usersに入れる
ちなみに 参照するbladeファイルに追記(データベースに登録されたユーザ名とemailを表示)
※現実世界ならやばい。。
xx.blade.php
<table> <tr><th>name</th><th>email</th></tr> @foreach($users as $user) <tr> <td>{{$user->name}}</td> <td>{{$user->email}}</td> </tr> @endforeach </table>
Seedファイルの作成と記述
シーダーファイル作成
php artisan make:seeder PeopleTableSeeder
PeopleTableSeeder.php
public function run(){ $param = [ 'name'=>'makoto', 'email'=>'makoto@makoto.jp' ]; DB::table('people')->insert($param); }
seedファイルの登録
DatabaseSeeder.php
public function run() { $this->call(PeopleTableSeeder::class); } }
シーディング実行
php artisan db:seed
取得できてる