メシのタネ

Webプログラミング 備忘録

  • DOMをPHPで操作できたらいいよね

    そうだよね。そう思うよね。JavaScriptでやると、画面がガタついたりするもんね。そうならないようにする方法もあるかもしれないけど、僕はできませんので、サーバー側でなんとかできたらええなぁと思って挑戦したけど、できませんでしたよ。PHP標準でHTMLをDOMにできるらしい今、技[...]

    続きを読む
  • 設計書ってなんで書くの?

    設計書をなぜ書くのかから始めてかれこれ3年近くこの禅問答をやっているわけですが、いまだに答えは出ません。ただ、その禅問答をやる中で設計書に対する取り組み方は大きく変わったので、その一部でも書いていきたい。基本設計はとにもかくにも必要だと思う設計書はいらぬ!という話をよく聞くし、自分[...]

    続きを読む
  • 書ききってやる。

    久々に書いてみる。久々に文章を書くということをやってみようと思う。伝える作業を観察したいと思ったからそうしたいと考えた。情緒的な文章は基本的にゴミ箱にぽいしてきましたが、情緒的なのも自分だと思う。「文章をかくという作業は、とりもなおさず自分と自分をとりまく事物との距離を確認すること[...]

    続きを読む
  • 普通の会社で2年普通に働いて思う事

    えらい寒くなりました。文句言いながらも現職を続けて2017年12月1日にめでたく2年がたちました。分かりやすいが乱暴に言えばITドカタと呼ばれる業界に入って案件のヒエラルキーの無慈悲さを痛感しながらも、それでもしょうがないと頑張る人たちに心を打たれながら「じゃあ俺も」と頑張れない自分に挫折して、とあ[...]

    続きを読む
  • jQueryUiのDatepicker利用時にminDate設定するとバグる件

    題名の通りなんですが、DatepickerでminDate使うとバグります。また後でキャプチャ見て貰いますけど、灰色の部分が、minDateで設定した日付が反復して出るようになるんですね。こういうの気が付かない人がいるかも知れませんが、ChoromeでminDate設定してる人は気にしてみてくだ[...]

    続きを読む

FuelphpのFieldsetとかmodelとか微妙にややこしいやつ

ドキュメントとかでは、
フォローできないややこしい部分で
自分が抜け出せない地獄にハマった部分を、
ドキュメントやフォーラムや優秀なブロガーさんからの
情報を基にしてとても雑にまとめました。

$_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();

クラスの呼び方は他にもあります。

てかここ見るのがよろし
http://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のドキュメント見ると大体分かります。
ただ、プロパティーの所が良くわかんないので、悔しいです。

クエリビルダ

ここに大体書いてある
http://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')

バリデーションルールはここに書いてあります。
これ以外にもあるんですかね。
http://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()
{


}

参考サイト

ここの内容理解したら本要らないんじゃないかってくらい
素敵な内容です。

http://fuelphp.jp/
http://piyopiyocs.blog115.fc2.com/blog-category-36.html
http://blog.fagai.net/category/php/fuelphp/
http://w.builwing.info/category/fuelphp/
http://teru2-bo2.blogspot.jp/2012/07/fuelphp_19.html
http://d.hatena.ne.jp/Kenji_s/20120130/1327911897
http://www.slideshare.net/MugeSo/mvc-14469802

PHPのクラスからやりたい人はこっち
http://www.slideshare.net/yandod/40-php-class

関連記事

  1. PHPサムネイル
  2. PHPサムネイル
  3. PHPサムネイル

コメントをお待ちしております