ModelのCRUD (1/6)
作成:2016-02-28 08:47
更新:2016-02-28 08:47
更新:2016-02-28 08:47
■Modelを修正する
データベースの基本操作はCRUD(Create, Read, Update, Delete)と呼ばれます。前回、CreateとReadに関してはだいたい説明をしました。残るCreate、Update、Deleteについて考えていくことにしましょう。
まずは、Modelである「MyTable」クラスの修正から行います。下にリストを上げておきましたので、このようにMyTable.phpを修正して下さい。
今回、2つの文が追加になっています。これらの役割について簡単にまとめておきましょう。
●$guarded変数
この変数は、「保護された項目」を示すものです。Modelを利用してデータベースのレコードを作成したりするようになると、この$guardedの設定が必要となってきます。
データベーステーブルには、IDをプライマリキーとして設定してあります。これは書き換えてしまうと困りますから、$guardedで保護しておく必要があります。これを忘れると、レコードの新規作成や更新に失敗するので注意して下さい。
●$timestamps変数
Laravelでは、Modelを利用してテーブルのレコードを作成・更新する際、自動的に'created_at','updated_at'という項目を用意します。それぞれ作成日時と更新日時を示します。が、今回作ったMyTableにはこれらの項目は用意していませんから、そのままでは「created_atがないよ」といったエラーになってしまいます。
$timestampsは、これらの日時関係の項目を用意するかどうかを指定するものです。これをfalseにすることで、created_atやupdated_atの値を自動追加しなくなります。もし、これらの項目をテーブルに用意してあるなら、この変数を操作する必要はありません。
――これらの変数をMyTableに用意することで、レコードの保存や更新などを行う準備が整いました。では、順にやっていきましょう。
まずは、Modelである「MyTable」クラスの修正から行います。下にリストを上げておきましたので、このようにMyTable.phpを修正して下さい。
今回、2つの文が追加になっています。これらの役割について簡単にまとめておきましょう。
●$guarded変数
この変数は、「保護された項目」を示すものです。Modelを利用してデータベースのレコードを作成したりするようになると、この$guardedの設定が必要となってきます。
データベーステーブルには、IDをプライマリキーとして設定してあります。これは書き換えてしまうと困りますから、$guardedで保護しておく必要があります。これを忘れると、レコードの新規作成や更新に失敗するので注意して下さい。
●$timestamps変数
Laravelでは、Modelを利用してテーブルのレコードを作成・更新する際、自動的に'created_at','updated_at'という項目を用意します。それぞれ作成日時と更新日時を示します。が、今回作ったMyTableにはこれらの項目は用意していませんから、そのままでは「created_atがないよ」といったエラーになってしまいます。
$timestampsは、これらの日時関係の項目を用意するかどうかを指定するものです。これをfalseにすることで、created_atやupdated_atの値を自動追加しなくなります。もし、これらの項目をテーブルに用意してあるなら、この変数を操作する必要はありません。
――これらの変数をMyTableに用意することで、レコードの保存や更新などを行う準備が整いました。では、順にやっていきましょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
<?php namespace App; use Illuminate\Database\Eloquent\Model; class MyTable extends Model { protected $table = 'mytable'; protected $guarded = array('id'); public $timestamps = false; }
※関連コンテンツ