書籍「Laravelの教科書」Laravel13対応サポートガイド公開中 → ダウンロードはこちら

Tinkerを使ってデータベースを操作する【Laravel入門講座】

Laravelデータベース

Laravelでは、Tinkerを使ってデータベース上のテーブルを編集できます。これまでの記事では、データベースに直接入力を行ってテストをしてきました。

それでも良いのですが、Tinkerを使うことで、より便利にデータの追加や修正ができます。

いくつかコマンドを紹介します。

英語の豆知識

tinker(ティンカー)は英語で鋳掛け屋(金物の修理屋)、修繕屋、といった意味。実はあのピーターパンにでてくるティンカーベルの職業もティンカーです。

Tinkerの使い方

最初に次のコマンドを入力します。

php artisan tinker

ここから先は、tinkerコマンドワールドになります。

データを追加する(カラム1個)

すでにデータベースにdivisionsテーブルがあるとします。

divisionsテーブルには、入力するカラムが1か所だけだとします。そこにTinkerを使って、新たにデータを追加してみます。

次のように入力します。

$division=new App\Models\Division

divisionテーブルのnameカラムに”human resources”というデータを追加するには、次のように入力します。

$division->name='human resources'

trueという値が返ってきます。最後にsaveします。

$division->save()

trueという値が返ってきます。

データベースを確認すると、次のようにデータが挿入されています。

ふたつ目のデータを入力するときには、また $division=new App\Models\Division から繰り返します。

データを追加する(複数カラム)

入力するカラムが2か所あるaddressテーブルに、新たにデータを追加するとします。

次のように入力します。

$address=new App\Models\Address

ここから先は、addressテーブルの各カラムにデータを追加していきます。

addressテーブルのaddressカラムに”naushika village”というデータを追加するには、次のように入力します。

$address->address="naushika village"

値が返ってきます。

次にaddressテーブルのplayer_idカラムに”1″というデータを追加します。

$address->player_id="1"

値が返ってきます。

カラムをすべて入力し終えたら、最後に $address と変数を入力します。

入力中の項目が表示されます。最後にsaveします。

$address->save()

trueという値が返ってきます。

コマンド上では、次のように表示されています。

データベースにも、次のように追加したデータが挿入されています。(2行目)

データを検索する

divisionテーブルにいない状態でdivisionテーブル1番の内容を表示するには、App\Models\Divisionを付けて検索します。

$division=App\Models\Division::find(1);

次のように結果が返ってきます

リレーションがあるデータを検索する

Tinkerを使えば、リレーション先の値が取得できるかのテストも行えます。

たとえばユーザーテーブルとアドレステーブルの間でhasOneのリレーションが設定してあるとします。

この状態で、リレーションのチェックをしてみましょう。

まずは、Tinkerで下記を入力し、ユーザーid2番のユーザーを検索します。

$user=App\User::find(2)

このユーザーidに紐づいたAddressテーブル上のアドレスを取り出します。

Tinkerで下記を入力します。

$user->address

これまでデータベースに入力してある内容に基づいて、結果が返ってきます。

データを更新する

Tinkerによって、データを更新することもできます。

たとえば、divisionテーブル1番のデータの【name】カラムを “human resources”から “HR”に変更したいとします。

まずはデータを検索して、更新したいデータを取ってきます。

$division=App\Models\Division::find(1);

次に更新したい内容を入力します。

$division->name="HR";

更新後の値、”HR”が返ってきます。

保存します。

$division->save()

データベース上でも変更が確認できます。

データを削除する

最後は、Tinkerによるデータベース削除方法を紹介します。

たとえば、divisionテーブル1番のデータを 削除します。

まずはデータを検索して、更新したいデータを取ってきます。

$division=App\Models\Division::find(1);

データが表示されます。

次に削除のコマンドを入力します。

 $division->delete()

無事削除できた場合は、trueの値が返ってきます。

Tinkerをやめるには

tinkerをやめるには quitと命令を打ちます。

quit

元通り、laravelのコマンドを入力できるようになります。

さいごに

以上、Tinkerの使ってデータベースを操作する方法を解説しました。

データベースを開かなくても、データベース上の値を操作したり、テストできるのが良い点かとお澪ます。

ご紹介したとおりTinkerで値の追加もできますが、ただ、大量にテスト用データをいれる時には、ちょっと不便。

この場合には、LaravelにはFakerという超便利機能があります。こちらは、また別の記事で紹介していきますね。

LaravelデータベースLaravel入門講座

生成AIを「安全に」使うための研修・セミナー

お問い合わせ

生成AIの業務活用で気になるのは、効率だけでなくセキュリティです。 実践的な活用に加え、セキュリティ対策もお伝えします。

詳細を見てみる
 

生成AIを「安全に」使うための研修・セミナー

お問い合わせ

生成AIの業務活用で気になるのは、効率だけでなくセキュリティです。 実践的な活用に加え、セキュリティ対策もお伝えします。

詳細を見てみる

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新版Laravel13への対応に対応。Laravel8からの各バージョンのテキストもご覧になれます♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

最新のLaravel13に対応。Laravel8からの各バージョンのテキストもご覧になれます♪

Laravelの本を書きました。


ひつじが目印♪

Laravelの使い方を分かりやすく解説した本を書きました。 書店やAmazon等のオンラインショップにて販売中
最新版Laravel13対応用サポートガイド(PDF)あり

書籍の詳細を見てみる

Laravelの本書きました。


ひつじが目印♪
クリックするとamazonページへ。
最新版Laravel13対応用
サポートガイド(PDF)あり

書籍の詳細を見てみる
シェアする
Twitter始めました。

コメント

タイトルとURLをコピーしました