質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
FuelPHP

FuelPHPは、軽量高速で開発が可能なPHPのWebアプリケーションフレームワークです。

Q&A

解決済

2回答

2014閲覧

FuelPHPのバリデーションで入力値の加工は可能か?

msx2

総合スコア174

FuelPHP

FuelPHPは、軽量高速で開発が可能なPHPのWebアプリケーションフレームワークです。

0グッド

0クリップ

投稿2017/01/26 10:49

FuelPHPのValidationクラスでバリデーションの処理で値を加工することはできないのでしょうか?

Validationクラスにはinput()validated()というメソッドがあり、それぞれ入力された値とバリデーションが通った値が入っています。

例えば、テキストボックスに何も入力がなかったらデータベースに空文字ではなくNULLを保存したい場合に、独自バリデーション内で値を加工しvalidated()に反映できたら便利だと思いました。

コアのソースを読めばわかると思うのですが力及ばず質問させていただきました。。

可能なのかそうでないのかだけでもわかると助かります。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Validationクラスのrunメソッド(バリデーションの実行)の入力がデフォルトでは $_POST となりますが、当該メソッドに引数を渡すことで、入力を上書き(拡張)することが出来きます。
これを利用して要望を満たすことはできませんか?

投稿2017/02/02 04:53

xenbeat

総合スコア4258

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

msx2

2017/02/02 07:01

やはりバリデーション前にPOSTの値を加工してvalidation->run()に渡す方法になりそうですね。 目的は果たせました、ありがとうございます。
guest

0

ベストアンサー

投稿2017/01/27 03:42

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

msx2

2017/01/27 03:58

いつもご回答ありがとうございます。 この記事は私も読みました! できそうな気がするんですけどねぇ…もう一回コアを読んでみます。
退会済みユーザー

退会済みユーザー

2017/01/27 04:16 編集

validated()の実装を見ると単に$this->validated(もしくは$this->validated[$name])を返しているだけなので、run()したタイミングでそれらに値をもたせるよう、自作validation rule内で加工すれば良いように見えます。 自作validation ruleはやったことがありますが、別途値を差し込むことまではやったことがないので、あまり参考にならない回答ですみません。
msx2

2017/02/02 07:25

もともとの発想がmodelの$_propertiesに記述するバリデーションルールでユーザー入力の検証もデータベースに保存する前の検証も両方済ませてしまいたいというものでした。 考えてみればこの2つは似てはいるけど別物で、FuelPHPのバリデーションはユーザー入力を検証するためのものであってデータベースの保存には別途検証が必要なんですね。 アドバイスありがとうございました。またお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問