テスト用データベースを作成
php artisan make:model Test -m
php artisan migrate
(phpmyadmin-ctl install)
tinkerを起動
php artisan tinker
tinker console内で...
$test = App\Test::create();
=> App\Test {#715
updated_at: "2017-05-08 05:43:30",
created_at: "2017-05-08 05:43:30",
id: 1,
}
データベースにデータが作成される
$user = new App\User
> App\User {#678}
>>> $user->name = "tinker_test"
=> "tinker_test"
>>> $user
=> App\User {#678
name: "tinker_test",
}
>>> $user->save()
オブジェクトを作成してデータをセーブしていく方法もある。
-------------------------------------------------------------------------------------------
コマンド
$test = App\Test::find(1);
$test = App\Test::where('id', 1)->first();
$test = App\Test::whereId(1)->first(); (上に同じ)
$test->id=2;
一時データのidが2にupdate
$test->save();
データベースに反映される
$test->delete();
即データベースから削除される。soft_deleteが有効ならdeleted_atに値が入る。
soft-deleteを有効にしたいならmigrationファイルに別途カラム$table->softDeletes();を追記→カラムdeleted_atが付加される。
<<<< soft-delete時 >>>
$test->delete();
$test = App\Test::onlyTrashed()
soft-deleteされたオブジェクトへ
$test->forceDelete();
soft-deleteを完全に削除
-----------------------------------------------------------------------------------------------------------------
Eloquent ORM relationships を設定したDBの場合、例えば....
App\User
..... public function messages ()
{
return $this->hasMany(Message::class);
}
App\Message
...... public function user ()
{
return $this->belongsTo(User::class);
}
と設定。tinkerからの操作は...
$user=App\User:::find(1)->messages()->create(['message' => 'from tinker'])
=> App\Message {#687
message: "from tinker",
user_id: 9,
updated_at: "2017-05-08 11:21:02",
created_at: "2017-05-08 11:21:02",
id: 1,
}
$user=App\User::find(1)->messages
=> Illuminate\Database\Eloquent\Collection {#704
all: [
App\Message {#694
id: 1,
created_at: "2017-05-08 11:21:02",
updated_at: "2017-05-08 11:21:02",
message: "from tinker",
user_id: 9,
},
],
}
ダミーユーザーの作成
Userモデル、テーブルが作成済みの状態で
php artisan tinker
factory('App\User', 6)->create();
ダミーユーザー6人分が作成される