
ドキュメントとかでは、
フォローできないややこしい部分で
自分が抜け出せない地獄にハマった部分を、
ドキュメントやフォーラムや優秀なブロガーさんからの
情報を基にしてとても雑にまとめました。
INDEX
$_POSTの取得
Input::post();
GETなら
Input::get();
SESSION
session::set("name",$value); session::get("name");
model
モデルにルーチン処理
モデルにメソッド書いて
モデルをnewしてメソッドにアクセスすれば
コントローラの行数を減らす事ができて保守がし易い
save $insert = array( 'key' => 'val', 'key1' => 'val1', 'key2' => 'val2' ); $obj = new Model_Basic($insert); $obj->save();
クラスの呼び方は他にもあります。
query $search = new Model_Analyvalue; $cnt = $search->query()->where('userID',$userID)->count();
クラスの呼び方は他にもあります。
てかここ見るのがよろし
https://fuelphp.jp/docs/1.7/packages/orm/crud.html
配列で欲しい
(オブジェクトが複数返ってくる場合)
$obj = $search->query()->where('userID',$userID)->get(); foreach($obj as $i =>$val) { $obj[$i] = $val->to_array(); }
これフォーラムで見たんだけど、もっと良い方法がありそう・・・。
crudのドキュメント見ると大体分かります。
ただ、プロパティーの所が良くわかんないので、悔しいです。
クエリビルダ
ここに大体書いてある
https://btt.hatenablog.com/entry/2012/08/20/190737
Fieldset
modelにもフォームの設定を書ける
クラスを呼んでモデルを紐付ける
Fieldset::forge('userinput')->add_model("Model_account"); text 'menu1' => array( 'label' => '練習メニュー1', 'form' => array( 'id' => 'menu1', 'type' => 'text', 'class' => 'span3', 'add_rule' ), ), select 'menu1' => array( 'label' => '練習メニュー1', 'form' => array( 'id' => 'menu1', 'type' => 'select', 'options' => array(1,2,3,4,5) 'class' => 'span3', 'add_rule' ), ), textarea 'menu1' => array( 'datatype' => 'text', 'label' => '自己紹介', 'form' => array( 'type' => 'textarea', 'class' => 'span5', 'rows' => '8', ), ),
割とこの辺はどこでも紹介してるので割合
checkboxとradioはselectとほぼおんなじ。
ただ、項目が全部改行されて出るのでむかつきます。
検索しても検索しても答えが出ないので、core見てみました。
/var/www/root/fuel/fuel/core/classes/field.phpのFieldset_Fieldクラスの
templateメソッドの中の589行目付近のpreg_match関数の
パラメータの変数matchに対して出力されたmatch配列回して
strip_tagsすればチェックボックスなどのbrが消えるっぽいです。
あんましよくないですよね。
fieldsetのfieldの削除、追加、バリデーションルール変更
フォームの追加 $obj->add('name','label',array(attr => 'hoge', attr2 => 'moge')) フォーム削除 $obj->disable('menu1') フォームのバリデーションを無効 $obj->field('menu1')->delete_rule('rule') フォームのバリデーション追加 $obj->add_rule('rule')
バリデーションルールはここに書いてあります。
これ以外にもあるんですかね。
https://fuelphp.jp/docs/1.7/classes/validation/validation.html
検索結果を表示したいときはmodelが一緒だったらコレで出せます。
$usermeta = DB::select('*')->from('acsegments')->where('UserID','=',$user[0]['id'])->as_assoc()->execute(); $form->populate($usermeta[0]);
DB検索かけて検索かかった値をpopulateすればいいです。
$formにはfieldsetのオブジェクトが入ってないとダメだと思います。
optionsの項目が多い場合
回して $sendopt = array(); $sendopt[0] = "選択してください。"; foreach($menu as $id => $field) { $sendopt[$field["menuID"]] = $field["menuvalue"]; } オプションセット $form->field("menu1")->set_options($num);
Tokenの作成
app/config.php
113行目辺りのセキュリティセッティングを設定
自分のはコメントアウトされていたから最初無効になってるかも
/** * Security settings */ 'security' => array( 'csrf_autoload' => false, 'csrf_token_key' => 'fuel_csrf_token', 'csrf_expiration' => 0, 'token_salt' => '5fdas4gahH56L17fTffg',
この項目を設定
呼び出しはコレ
Config::get('security.csrf_token_key'); こいつはname \Security::fetch_token(); こいつはsalt トークンのチェック Security::check_token()
テンプレートの変え方
出力テンプレ変えたい場合
contorollerのアクションメソッドの前で
public $template = 'template'; public function action_hoge() { }
参考サイト
ここの内容理解したら本要らないんじゃないかってくらい
素敵な内容です。
https://fuelphp.jp/
https://piyopiyocs.blog115.fc2.com/blog-category-36.html
https://blog.fagai.net/category/php/fuelphp/
https://w.builwing.info/category/fuelphp/
https://teru2-bo2.blogspot.jp/2012/07/fuelphp_19.html
https://d.hatena.ne.jp/Kenji_s/20120130/1327911897
https://www.slideshare.net/MugeSo/mvc-14469802
PHPのクラスからやりたい人はこっち
https://www.slideshare.net/yandod/40-php-class