2014-04-01から1ヶ月間の記事一覧

Vimの正規表現アレコレ

任意の文字列を繰り返す (例) ○○.●●● という文字列に対して、 「.●●●」 だけ消す場合 :%s/\..*//gc ※*は「直前の文字を0回以上繰り返す」の意味 正規表現rをn回繰り返す 構文 r\{n\} (例)三桁の数字を表現 [0-9]\{3\} 具体的には… 「Vimで三桁の数字を消す」…

【CakePHP2.x】パンくずリスト

CakePHP1系でもgetCrumbList()が使えるように、必要なものをCakePHP2から移植。 '<a href="%s"%s>%s</a>', 'tag' => '<%s%s>%s</%s>', 'ul' => '<ul%s>%s</ul>', 'ol' => '<ol%s>%s</ol>', 'li' => '<li%s>%s</li>', ); protected $_crumbs = array(); public…

【CakePHP2.x】routes.phpの設定あれこれ

似たようなルーティングを適用させる Config/routes.php の設定は上から順に適用される。 Router::connect('/hoge/*’, 〜 Router::connect('/hoge/:type’, 〜 Router::connect('/hoge/view/:id’, 〜 としてしまうと、後半2つは無視されるので、 Router::conn…

【CakePHP2.x】複数のチェックボックスをチェックした時にPOST送信させる

View側 <div id="div_no_id"> <form action="" method="post" id="form_no_id"> <dt>チェックボックス</dt> Form->create('menu', array('type'=> 'get')); echo $this->Form->input( 'industry', array( 'type' => 'select', 'multiple' => 'checkbox', 'legend' => false, 'div' => false, 'label' => false, 'n…</form></div>

jQueryあれこれ。

チェックボックスが選択されたら、今のURLからGETパラメータを削除したURLにsubmitする jQuery(function($){ $(function(){ $('#divタグのID input[type="checkbox"]').change(function(e){ e.preventDefault(); // 現在のURLを取得 var url = location.href…

以前にコミットしたファイルを復活させる呪文

git

$ git checkout 該当コミットのハッシュ値 その時のファイル名

【CakePHP2.x】Modelのアソシエーションを解除したいとき

belongsToやhasMany等に記述した他のModelとの結びつきを解除したいときは以下の手順を踏む。 actsAs に Containable を記述 'contain' => false を記述する 例えば… public $actsAs = array('Containable'); … $findParams = array(‘contain’ => false); re…

連想配列の並べ替え集

PHP

ランダムに並べ替える $words = array( array( ‘id’ => 0, ‘name’ => ‘労’, ), array( ‘id’ => 1, ‘name’ => ‘働’, ), array( ‘id’ => 2, ‘name’ => ‘審’, ), array( ‘id’ => 3, ‘name’ => ‘判’, ), ); // idの配列を作る $ids = range(0, count($words)-1);…

ランダムに複数の抽出結果を取得する

CakePHP2で、 ‘order’ => ‘rand()’ として検索結果をランダム取得しようとしていたが、生成されたSELECT文には ORDER BY rand() ASC と指定されていて、更にEXPLAINで調べてみたところ、見事にExtraの項目に、 Using where; Using temporary; Using file sor…

【CakePHP2.x】SQL確認方法あれこれ

Viewに仕込む場合 element('sql_dump'); ?> View以外に仕込む場合 モデル名->getDataSource()->getLog()); // 個人的にはこちらのほうが好き var_dump($this->モデル名->getDataSource()->getLog());

「制限あり」で無線LANに接続できなかった件

LenovoのWindows8マシンでWimaxに接続しようとしたら、 「制限あり」 と表示されて繋がらなかった。 SSIDの指定とパスワードは合っていても暗号化に失敗していると発生するようで、 暗号方式をTKIPに変更したところ無事に接続できた。

【CakePHP2.x】containを含んだpaginateの実装

例えば、 User→Company User→Country のようなつながりのあるモデルのみを参照したい場合、 Controller側 array( ‘Company’, ‘Country’, ), 'conditions' => array( ‘User.enabled’ => 1, ‘User.type' =>1, 'User.type' => 'outline', ), 'limit' => 10, 'p…