1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

子供の想像力を伸ばしアイデアを形にする小学生向けプログラミング教室「プロスタキッズ」

LaravelのModelのプライマリキーをstringにする

Pocket


Laravelでは、artisanコマンドでテーブルの定義を行い、作成をすることが多いと思います。

その際、公式の手順通りに行うと、テーブルのプライマリキーはUNSIGNED INTEGER型のカラム”id”になります。

同様に、Eloquent ORMモデルも、プライマリキー名やプライマリキーの型は、公式の手順に従うと、デフォルトの動作となります。

たとえば、

とStudentモデルクラスを定義した場合、

このクラスは、プライマリキー“id”を持つテーブル”students”を参照することになります。

とはいえ、実際の業務上、Laravel標準のルールではなく、独自のルールでテーブル定義を行う場面も多々あります。

Eloquentでは、参照テーブル、プライマリキーについても、使用者が自由に設定できるようになっています。

今回は、プライマリキーが文字列となる場合を考えてみましょう。

また、Laravel標準のカラム名”id”ではなく、他のものにしてみます。

例として、プライマリキー”student_id”を持つテーブル“tbl_student”について考えていきましょう。

このプライマリキー”student_id”は、”A00123″や”B98765″といった文字列をとります。

当然、文字列ですので、auto increment型ではありません。

この場合、以下のようにモデルクラス定義を行います。

Illuminate\Database\Eloquent\Model クラスを継承するモデルクラスで、以下のプロパティを書き換えます。

・$table には、テーブル名
・$primaryKey には、プライマリキーのカラム名
・$incrementing には、auto increment型でない場合はfalse

このようにして、LaravelのEloquent ORMでは使用者が柔軟な設定を行うことが可能です。

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

初心者がプログラミングで挫折しない学習方法を無料動画で公開中。オンラインに特化したプログラミングスクール「TechAcademy(テックアカデミー)」が解説。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

ページ上部へ戻る