LaravelでBoolean型のカラムににTrueやFalseが入らない原因と対策

Laravelデータベース

Laravelでカラムのデータ型にBoolean型を指定すると、mysqlではデータ型はtinyint(1)になります。

そのため、コントローラーからmysqlにデータを入れる時にTrueやFalseではうまく入力できません。

Trueの場合は1、Falseの場合は0を入れてみてください。

LaravelでBoolean型は、mysqlではtinyint(1)になる

データ型の違いについて、実際の画面で解説します。

こちらがLaravelのマイグレーションファイルですが、ちゃんとBoolean型を指定しています。

このファイルをマイグレートすると、データ型が下記のようにtinyint(1)になります。

この【is_correct】カラムに値をいれるときには、TrueやFalseではなく、Trueの場合は1、Falseのときは0を入れましょう。

ただし条件を指定する場合にはTrueとFalseが使える

ですが条件式などでカラムの値を使う場合には、True・Falseが使えます。

じゅんこ
じゅんこ

ちょっとややこしいですが。

たとえば、下記のようにLaravelのコントローラーにコードを書いてみます。

コードの意味
is_correctの値がTrueの値を取得して、 $resultsに代入してください。

この条件に該当するのは、下記のデータです。

条件式ではTrueを指定していますが、ちゃんと 【is_correct】が【1】になっているデータを取ってきてくれます。

取得結果をforeachを使ってビューで表示させると、次のようになります。

ちゃんと値が表示されています。

まとめ

 

今回のまとめboolean型はmysql上ではtinyint(1)になる

入力するときは、Trueは1、Falseは0をいれる。

入力した値を条件式などで利用する場合は、True/Falseが使える

 

もちろんTrueやFalseではなく、1や0を使って条件式を作ることもできます。

ちょっとややこしいですが、頭の片隅にでも置いておくと、boolean型を使うときに便利です。

Laravelデータベース

お仕事のご相談・お問い合わせ窓口

お問い合わせフォームへ

開発案件・法人研修・コンサルティング実施しています。 お気軽にお問い合わせください。
ご挨拶&サービスご紹介動画ございます。

お問い合わせフォームへ

お仕事のご相談・お問い合わせ窓口

お問い合わせフォームへ

こちらよりお気軽にお問い合わせください。 ご挨拶&サービスご紹介動画ございます。

お問い合わせページを見てみる

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新版テキストに加え、Laravel8版~Laravel11版もご用意しています♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

最新版テキストに加え、Laravel8版からLaravel11版もご用意しています♪

Laravelの本を書きました。


ひつじが目印♪

Laravelの使い方を分かりやすく解説した書籍を出版しました。 ご好評につき、最新版に対応した改訂版を2025年7月に発売
書店やAmazon等のオンラインショップにて販売中です。 詳しくは下記ボタンをクリック

書籍の詳細を見てみる

Laravelの本書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravelの使い方を分かりやすく解説した書籍を出版しました。ご好評につき最新版対応の改訂版発売。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる
Twitter始めました。
40代からプログラミング!
タイトルとURLをコピーしました