うめぼしジョイスティック - ivoice

CakePHP、JavaScript、jQuery等のプログラミングについて書いていきます 思考は、うめぼしのように硬く、そして柔らかく。

CakePHP

CakePHP2系のACLプラグインでログアウトユーザにアクションを許可するためのコード(方法)

※筆者は CakePHP2でACLを超簡単管理できるプラグイン「ACL Plugin 2」 - たきゃはしです このサイトの情報からACLプラグインを使っていましたが、2015年6月現在 ACLプラグインであるPlugin ACLがダウンロードできない状態になっています。 2015年7月追記 Ala…

CakePHP2系でサニタイズをする方法

① まず、appのなかのVendorフォルダ内にmyfunction.phpを作ります

CakePHP2系でデータ読み出しが遅いときはコントローラーのusesを見直してみよう。

これはCakePHP2系でとても重要なことです。リレーションの順番に関することです。例えば、 SampleDog Appleという3つのデータベースをリレーションさせていたとして、 コントローラーSamplesControllerでDogとAppleのモデルを読み出したい場合は App::uses(…

PHPで、年月日時間のデータ(created)から日付だけ取り出す方法

PHPもしくはCakephpで、MySQLのカラムにcreatedを入れたあとなどに、 その中の年月日だけ出したい(時間はいらない)場合がありますよね。 今回は、そのような場合に、(年と)『日付』だけ取り出すテクニックです。 例えば、$exampleという変数に、Example…

CakePHPでvar_dumpのレイアウト表示が崩れたときの対処法

CakePHPでvar_dumpのレイアウトが崩れたときの対処法です。var_dumpのレイアウトが崩れると、配列の構造が分からなくなるのでとても困りますよね。レイアウトを直す方法があります。解決策は、var_dumpする前後に<pre>タグで囲んであげることです。<pre></pre> これで、配列</pre>…

CakePHPのサーチプラグインで、ページネーションにページ送りを表示する方法

①まず、CakePHPのサーチプラグインを実装する CakeDCのsearch pluginの記事が少ないので1個置いときますね。CakePHP Advent Calendar 2010 8日目 - kanonjiの日記d.hatena.ne.jp こちらが参考になります。 ② コントローラーにサーチ機能を付けたActionを作っ…

MySQLでUPDATEするときに、idを~~から~~まで、と範囲指定するやり方

resultsというテーブルで、idの1311から1326までの event_name_id という変数を全て59にしたい場合は、id BETWEEN a AND bを使って、UPDATE results SET event_name_id = 59 WHERE id BETWEEN 1311 AND 1326 とすれば完了です。

CakePHPで、テーブルに入っている行の最大値のidを取得するテクニック

例えば Threadというテーブルがあって id title body -------------------------- 1 hi hello 2 oh wow 3 hi apple 4 hi good 5 hi split 6 hi girl まぁ適当ですが、こんな感じで6つデータが入っているとしましょう。 今回やるのは、このThreadというテー…

CakePHPで掲示板などのサイトを作るときにipアドレスとホスト名を取得する方法

まず、コントローラーに App::uses('Sanitize', 'Utility');//サニタイズ用 これを追加します。サニタイズ用の準備です。 次に、addアクションに移動します。 ipaアドレスは$ip=$this->request->clientIp(false); これで取得できます。 リモートホスト名は $…

CakePHPを習得するための定番、必須サイト

CakePHPにはCookbookという公式のチュートリアルサイトが存在します。 このページです。 入門 — CakePHP Cookbook 2.x ドキュメント CakePHPを自分のものにするには、上記の1ページをとにかく実装してみましょう。 とにかく最初が大変です。1ヶ月以上かか…

さくらインターネットでCakePHPを使っていたら、addやdelete、Editで画面が真っ白になる時の対処法

どうも。ivoiceです。 ローカル環境ではちゃんと動いているのに、オンライン環境(さくらインターネット)でaddなどをすると画面が真っ白になる症状の解決方法です。 この場合は、CakePHP本体ではなく、php.iniの設定を変更しましょう。 さくらのレンタルサ…

CakePHPのfindでconditionsに複数の条件を当てはめる方法

CakePHPのfind関数について、conditionsで複数の条件を当てはめる方法です。 データベースの名前をModelとして、$a にデータベースの中身をすべて入れる場合は コントローラーに$a = $this->Model->find('all'); と書けば、取得できます。 ここで、Modelのデ…

CakePHPで、AjaxとjQueryを用いてフォーム入力(Form)を実装するための方法

Ajaxを用いたフォーム入力を実装するための方法です。 CakePHPでjQueryを用いています。 ① まず、CakePHPでフォームを作る。 Form->Create('Model'); echo $this->Form->input('year', array( 'type' => 'date', 'empty' => ' ', 'selected'=>array( 'year' …

CakePHPでリンクを別のタブで開くようにする方法

CakePHPでリンクを別のタブで開くようにする方法です。 通常、htmlのタグでは、 <a href="飛ばす先のURL" target="_blank">リンクへのテキスト</a>こんな具合で「" target="_blank"」を記述すると思います。 CakePHPでこれを実現するには、 echo $this->Html->link( ”リンクへのテキスト”,飛ばす先のURL,a…

CakePHPをApacheで動かすときのリンクの記述方法に関する注意事項(Missing Controller)

CakePHPでハマるポイントとして、データベース、コントローラー、モデル、ビューの名前で、それぞれ単数形、複数形を使い分けないといけないというのは CakePHPの公式説明書であるCookbookにも書いてある。 CakePHPの規約 — CakePHP Cookbook 2.x ドキュメン…

CakePHPのコントローラー名などについて

CakePHPでは、規約が重視される。 特に変わっているのが、データベースの名前とコントローラー、モデルの名前の関係性。 データベースは英語の複数形の単語でつくり、 コントローラーは複数形、ビューも複数形。 モデルのファイル名は単数形で書かなければい…