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の教科書の詳細を見る

最新のLaravel10版テキストに加え、Laravel8版・Laravel9版もご用意しています♪

【無料プレゼント】

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

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

詳細はこちらをクリック

最新のLaravel10版テキストに加え、Laravel8版・Laravel9版もご用意しています♪

Laravelの本を書きました。


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

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。
Laravel10対応。Laravel11サポートガイドもご用意しています。詳しくは下記ボタンをクリック♪

書籍の詳細を見てみる

Laravelの本を書きました。


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

Laravel10対応

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる

 

Laravelの教科書限定コミュニティ【Laravelの教科書ラボ】はじめました。
デプロイ講座付。StripeやChatGPT連携など過去10回分のセミナー動画視聴可能。

Laravel実践スキルをのばしたい方におすすめです。

ラボの案内を見てみる

Twitter始めました。
40代からプログラミング!
タイトルとURLをコピーしました