1
/
5

Laravelでboolean型にしたはずのデータがint型で返ってくる

※弊社のエンジニア記事になります。

はじめに

Laravelのマイグレーションファイルでは確かにboolean型を指定してるのに実際にDBからデータを持ってくるとint型になっているということがあると思います。

私もそこで引っかかったのでその解決策について書いていきたいと思います。

DBにはint型で保存される

Laravelのマイグレーションファイルではカラムの型指定でboolean型が指定できます。

public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            // 省略
            $table->boolean('is_admin')->default(0);
    });

余談ですがboolean型のカラム名は命名規則で「is_xxx」とするようです。

上記のようにカラムの型をbooleanに指定したとしても実際にDBにはint型で保存されています。

なのでDBからデータを引っ張ってきてもboolean型ではなくint型で返ってきます。

ですが実際に使うと時はboolean型で使いたい事があります。

そんな時はモデルでキャストする事で解決できます。

モデルでキャストしてboolean型にする

Laravel内のモデルクラスでキャストすることでカラムの値をboolean型として取ってくることができます。

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
   // 省略

    /**
     * @var array
     */
    protected $casts = [
        'is_admin' => 'boolean',
    ];
}

上記のようなコードで該当のカラムをキャストしてboolean型にします。

このように定義していればDBにはint型で保存されている値もboolean型で扱えるようになります。

$user = App\Models\User::find(1);

$isAdmin = $user->is_admin;

上記のようにして取得すればis_adminの値をboolean型で扱えます。

↓記事の続きはこちら↓

https://rightcode.co.jp/blog/information-technology/laravel-boolean-int

もっとワクワクする仕事をしたいあなたへ

現在、ライトコードでは「WEBエンジニア」「スマホアプリエンジニア」「ゲームエンジニア」、「デザイナー」「WEBディレクター」「エンジニアリングマネージャー」「営業」などを積極採用中です!

有名WEBサービスやアプリの受託開発などの企画、開発案件が目白押しの状況です。

  • もっと大きなことに挑戦したい!
  • エンジニアとしてもっと成長したい!
  • モダンな技術に触れたい!

現状に満足していない方は、まずは、エンジニアとしても第一線を走り続ける弊社代表と気軽にお話してみませんか?

ネット上では、ちょっとユルそうな会社に感じると思いますが(笑)、
実は技術力に定評があり、沢山の実績を残している会社ということをお伝えしたいと思っております。

  • ライトコードの魅力を知っていただきたい!
  • 社風や文化なども知っていただきたい!
  • 技術に対して熱意のある方に入社していただきたい!

一度、【Wantedly内の弊社ページ】や【自社サイト】をのぞいてみてください。

【wantedlyぺージ】https://www.wantedly.com/companies/rightcode

【自社サイト】https://rightcode.co.jp/

【採用募集】https://rightcode.co.jp/recruit(こちらからの応募がスムーズ)

社長と一杯飲みながら話を聞きたい方は → https://rightcode.co.jp/gohan-sake-president-talk

Invitation from 株式会社ライトコード
If this story triggered your interest, have a chat with the team?
株式会社ライトコード's job postings

Weekly ranking

Show other rankings
Like Hiroyuki Choshi's Story
Let Hiroyuki Choshi's company know you're interested in their content