Laravel:SQLに小数点以下を記入したい。

Laravel:SQLに小数点以下を記入したい。

Laravel:SQLに小数点以下を保存する方法

Controller、Model、Viewを作り終わり、動作確認をすると「???」と言う箇所が出てきたりします。
今回はそんな記事です。

Createで1.4と記載したら【整数で入れてください近い数字は1か2です】と指示されてしまった。

サイズを整数に直して単位を変えればいいのですが、少数表記したいときもあります。
この件について複数回調べてしまったので備忘録を残すことにしました。

SQLに整数が入ってしまう原因はModelに問題がある

まず、バリデーションでも怒られず処理が実行されたにもかかわらず整数値が入っていた場合。
Model側の記載に問題がある様です。

具体的には、validationの設定で【integer】を指定している場合です。

数値系のバリデーション判定は4つの方法があります。

  1. integer:整数か否か
  2. numeric:数値か否か
  3. digits:桁数:数値かつ指示桁数か否か
  4. digits_between:桁数最小,桁数最大:数値かつ最小桁数≦値≦最大桁数か否か

integer指定していると小数点以下は記載されないようです。
逃げ技として【required】(※必須入力)とした場合、上記型の指定をしなくても小数値を入力してくれます。

Viewで怒られる場合はModelかViewどちらかに問題がある

今回の私の事例ではView側の指示ミスでした。

これだと整数で入力する事が必要と判断されてしまいます。

そこで、【step=’0.01’】を書き足します。

これで値は0.01ずつ上下すると認識され0.01も入力する事が出来ます。
※0.001は入力できません。

まとめ

スクリプトを書いていると「あれ、なんだったっけ?」と言うことが多々出てきます。
そのたびに調べるのですが、調べた結果を見て「そうだよね」となる事も多々。

スペシャリストへの道は険しいです。