ドキュメントとかでは、
フォローできないややこしい部分で
自分が抜け出せない地獄にハマった部分を、
ドキュメントやフォーラムや優秀なブロガーさんからの
情報を基にしてとても雑にまとめました。
$_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のドキュメント見ると大体分かります。
ただ、プロパティーの所が良くわかんないので、悔しいです。
クエリビルダ
ここに大体書いてある
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


コメントを残す