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

Laravelデータベース

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

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

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

英語の豆知識

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

Tinkerの使い方

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

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

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

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

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

次のように入力します。

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

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

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

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

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

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

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

次のように入力します。

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

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

値が返ってきます。

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

値が返ってきます。

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

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

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

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

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

データを検索する

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

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

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

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

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

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

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

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

Tinkerで下記を入力します。

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

データを更新する

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

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

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

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

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

保存します。

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

データを削除する

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

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

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

データが表示されます。

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

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

Tinkerをやめるには

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

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

さいごに

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

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

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

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

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

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

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

Laravel8版と、最新のLaravel9版、ふたつのテキストご用意してます♪

【無料プレゼント】

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

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

詳細はこちらをクリック

Laravel8版と、最新のLaravel9版、ふたつのテキストご用意してます♪

社内にWebアプリ開発経験がなくて、困ってませんか?

「自社でWebアプリ開発を始めていきたい」
という企業様のために、Laravelセミナー・プログラミング教育を実施しています。

【セミナー使用スライド】

詳細はこちらご覧ください

Twitter始めました。
40代からプログラミング!

コメント

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