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

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

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

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

Q&A

解決済

2回答

2977閲覧

【FuelPHP】[バリデーション処理を実装したい]

star24star

総合スコア115

FuelPHP

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

0グッド

0クリップ

投稿2016/02/21 04:46

[現在実装中の処理]
・ログイン画面から存在するidとpassならメインページへ遷移
・id、passのどちらか及び両方が存在しなければログイン画面へリダイレクト
(ここまでは出来ている)

[やりたいこと]
バリデーション処理を加えたいと思っているのですが、どこに何を追加するのが良いのか
アドバイスを頂けらたら幸いでございます。

PHP

1class Controller_LoginCheck extends Controller_Base 2{ 3 public function action_index() 4 { 5 return View::forge('login/index'); 6 } 7 public function action_check() 8 { 9 // viewからPOSTで渡ってきた情報を変数へ格納する 10 $id = \Input::post('id'); 11 $pass = \Input::post('pass'); 12 13 // modelを呼ぶ 14 $model = new Model_LoginCheck(); 15 // DBにidとpassが存在すればtrueが返ってくる処理をしている 16 $response = $model->user_loginCheck($id, $pass); 17 18 // $responseがtrueの場合はメインページへ遷移させる 19 if ($response) 20 { 21 $this->set_session($id); 22 Response::redirect('/main/index'); 23 } 24 else 25 { 26 // falseの場合はもう一度ログイン画面へ 27 return $this->action_index(); 28 } 29 } 30}

modelとcontrollerはファイルを分けているのですが、一旦、このcontrollerの中に
書きたいと思っています。

まず、やることとしては
・バリデーションの設定ファイル(メソッド?)を作る
・設定ファイル(メソッド?)を読み込むメソッドを作る
・Viewに適応させる
だと思っているのですが、これで合っているでしょうか?

また、このcontrollerファイルに組み込むバリデーション設定もご教授頂けたらと思います。

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

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

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

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

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

guest

回答2

0

ベストアンサー

Fieldsetクラスを使うのがラクなのかな。
FieldsetクラスからFormクラスとValidationクラスを使えますので。
参考:FuelPHPのValidationにクロージャを使う - Qiita
http://qiita.com/ya-sasaki/items/ae7a1e6814e53da6df3f

php

1$fieldset = Fieldset::forge(); 2$fieldset->add('id','id',array('type'=>'text'), array( 3 array('required'), array('valid_string', array('alpha-numeric', 'dots', 'spaces')) 4)); 5$fieldset->add('pass','pass',array('type'=>'text'), array( 6 array('required'), array('valid_string', array('alpha-numeric', 'dots', 'spaces')) 7)); 8... 9$val = $fieldset->validation(); 10$val->add('dummy','dummy')->add_rule(array('dummy'=> 11 function () use (...) { 12 ... 13 } 14);

投稿2016/06/22 01:45

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

Fuelはよー知りませんが、それ以前のMVCモデルのお約束として、
controllerにビジネスロジック書いちゃダメです。

controllerは利用するモデルとヴューの振り分けをする場所です。

バリデーションをどこに書いたら良いのか分からないのだとしたら、
それはフレームワークの設計がおかしいってことです。

ちなみに、Fuelにもバリデーションするクラスがあるようですよ?
http://fuelphp.jp/docs/1.5/classes/validation/validation.html

「モデルは永続化データにアクセスするためのもの」という間違った立ち位置にしてしまったために
ビジネスロジックが全部controllerにつめこまれて見るも無残なファットコントローラーを
山のように生み出したCakePHPのようなことはしちゃダメです。

投稿2016/02/21 06:05

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

star24star

2016/02/21 13:03

MVCに分けて書くことは知っていて実際にそのように書いています。 controllerにと言うのは処理の順序とどのあたりに書くべきなのかを知るためです。 つまりFuelPHPのバリデーションの使い方を知りたいのです…。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問