libro
初心者のためのLaravel入門

ModelのCRUD (1/6)

作成:2016-02-28 08:47
更新:2016-02-28 08:47

■Modelを修正する

データベースの基本操作はCRUDCreate, 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に用意することで、レコードの保存や更新などを行う準備が整いました。では、順にやっていきましょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

*program list*

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class MyTable extends Model
{
    protected $table = 'mytable';

    protected $guarded = array('id');

    public $timestamps = false;
}

※関連コンテンツ

「初心者のためのLaravel入門」に戻る