Validation クラスをはじめて使おうとしているのですが使い方がわかりません
APIサーバーなのでモデルではなく入力パラメータに対して行いたいのですがそういうものではないのでしょうか
public function post_test() { $val = Validation::forge(); $val->add('lat', 'lat')->add_rule('required|numeric|numeric_between[-90,90]'); $val->add('lon', 'lon')->add_rule('required|numeric|numeric_between[-180,180]'); echo($val->run(array('lat' => Input::param('lat')))); echo($val->run(array('lon' => Input::param('lon')))); }
http://fuelphp.jp/docs/1.5/classes/validation/validation.html
をみながら試しにコントローラーの最初にこんな感じのコードをかいてみたのですが
_find_rule<strong>Notice:</strong> Invalid rule "required|numeric|numeric_between[-90,90]" passed to Validation, not used. in COREPATH/classes/validation.php [471]: _find_rule1
となってエラー理由がよくわかりません
バリデーションの書き方の入門解説サイトのような記事があれば教えていただけると助かります
追記
試行錯誤しているうちにエラーはなくなったのですが
バリデーションは全く機能していません
ためしに片方を数字 片方を文字列にして curl をたたいてみたのですがどちらも false になります
public function post_test() { $val = Validation::forge(); $val->add_field('lat', 'lat', 'required|valid_string[numeric]|numeric_between[-90,90]'); $val->add_field('lon', 'lon', 'required|valid_string[numeric]|numeric_between[-180,180]'); Util::log(Input::param('lat')); Util::log(($val->run(array('lat' => Input::param('lat')))) ? "true" : "false"); Util::log(Input::param('lon')); Util::log(($val->run(array('lon' => Input::param('lon')))) ? "true" : "false"); }
デバッグ表示結果
37 false abc false
フォームに対して複雑な rule をかく記事はたくさんでてくるのですが
APIで使う場合の最もシンプルな形での呼び出し方のサンプルコードのある記事がほとんどでてこなくて
何が悪いのかまったくわからないです…
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/03/13 16:42
2019/03/14 04:27