”本気で”エンジニアを目指すなら『TECH BOOST』キャリアから逆算された講座内容で、あなたの未来をサポートします!

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

『TECH BOOST』なら、AI、IoT、ブロックチェーンなど最新技術が学べる!今流行りの技術を学んで、新たな一歩を踏み出そう!

プログラミングで挫折しそうなら、現役エンジニアにマンツーマンで相談してみませんか?オンラインのプログラミングスクール「TechAcademy」のメンターが対応。

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

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

あわせて読みたい

関連記事

ページ上部へ戻る