photoBy: http://www.pd-trinity.com/file/40/56-2.jpgbasics.php ってなに?/cake/basics.phpにあるファイル。 これに関数を設定しておくと、MVCのどこからでも関数が使えます。 prの修正デバッグするときに pr(); を使います。 その際に 行数や情報をを見やすく表示させるように改造します。 613から623行目あたり function pr($var) { if (Configure::read() > 0) { $array = debug_backtrace(); echo "<div align='left' style='background-color:black;color:white;'><pre style='background-color:black;color:white;font-size:
さいしょに 以前から検索機能が欲しかったので触ってみよう、触ってみようと思ってた「Search Plugin」です。 思ったより参考記事が少なく途中挫折しかかりましたが、無事導入も終わったので必要最低限の内容を記事にしてみます。 今回使うビヘイビア: CakeDC/search あと、CakePHPのRootフォルダは「caketest」とします。 完成図 # 店舗名検索(フリガナ可)、公開設定の絞り込みとページネ-ションを使えるようにします。 DBの準備 CREATE TABLE IF NOT EXISTS `shops` ( `id` int(8) unsigned zerofill NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `kana` varchar(255) NOT NULL, `display` int(1)
[CakePHP1.2.3] フォームのセレクトボックスを作る際に、コントローラー内でfind(‘list’)で、belongsToの関連データを取得しようとしたら取得できず。調べてみたら、この場合はrecursive=0をセットしないといけないようです。 http://book.cakephp.org/1.3/view/1018/find#find-list-1022 上記リファレンスは1.3ですが、Cakephp1.2でも同様にrecursive=0が必要でした。 地味に気がつかないことがあるのでお気をつけください。 あまり使う場面がないようで、意外とありました。 例えば、Tagで絞り込んだArticleのlistを取得したい際などですね。 そのような場合、以下のようにします。 [php] $this->Article->bindModel(array(‘hasOne’ => arra
Security.levelをmediumのままブラウザを閉じた時にセッションを破棄させたい時はsession.cookie_lifetimeの値を0にする。 app/Config/bootstrap.php Configure::write('Session', array( 'defaults' => 'database', 'cookie' => 'CAKEPHP', 'timeout' => 259200, 'ini' => Array( 'session.cookie_lifetime' => 0, //ブラウザを閉じた時にセッションを破棄 'session.gc_maxlifetime' => 2580000, 'session.gc_probability' => 1, 'session.gc_divisor' => 100 ) ));
とある事情で独自バリデーションチェックをかけた後、 $this->Model->create(); $this->Model->set($data); $this->Model->save(); としたのだが、どうしてもsaveできない。 で、原因はバリデーションチェック。cakePHPは、$validateを定義しているとsave時に勝手にバリデーションチェックをするみたい。余計なおせっかいだっつーの…。 まあ原因がわかれば対処は簡単で、 $this->Model->create(); $this->Model->save($data, false); と、第二引数にfalseを放り込んでバリデーションを無視するようにして解決。 しかしホントにおせっかいな機能だ…。
セッション¶ class SessionComponent(ComponentCollection $collection, array $settings = array())¶ CakePHP の SessionComponent は、複数のページにわたってクライアントのデータを継続して 保持する方法を提供します。このコンポーネントは $_SESSION 変数に関連した いくつかの便利なメソッドを持つラッパのように振舞います。 CakePHP ではセッションの複数の方法で設定を行えます。 詳しくは セッションの設定 を参照してください。 セッションデータを伝達する¶ SessionComponent はセッション情報を伝えあうために使われます。 ユーザへ出力するメッセージの作成はもちろんのこと、基本的な CRUD 機能が含まれます。 覚えておきたいことは、 ドット記法 により配列構造で
エラーとの戦いを何時間も続けているそこのあなた☆僕もその一人です。この木の下で一休みしてください。ふと見上げると解決策がみつかるかもです。PHP,Flex,MySQLなどのエラー回避を実らせていきます。 [php][cakephp][mysql]改行がそのまま表示されない 改行を含んだテキストをデータベースに登録して、そのままHTMLに出力しても 改行コードがそのままなため、<BR>にはならない。 例) おはようございます。今日の天気は晴天で気持ちいいですね。でも風が強いです。 という文面になる。 これは関数 nl2br ( ) を使うとOK!! echo nl2br($text); とすると、 例) おはようございます。 今日の天気は晴天で気持ちいいですね。 でも風が強いです。 とちゃんと<BR>の改行が表示されるよーー!
え?CakePHPって最初からベーシック認証のコンポーネントがあるの? どうやらあるみたいですね。Caker歴2年ちょい。今日まで知りませんでしたのでメモ。 appフォルダ直下app_controoer.php app_controoer.phpは無ければ作ってください。appフォルダの直下ですよ。 class AppController extends Controller { var $components = array('Security');//Securityコンポーネントの呼び出し //beforeFilterで最初にこの処理を実行する //今回だと、最初にベーシック認証を指定する function beforeFilter() { parent :: beforeFilter(); $this->Security->loginOptions = array('type'=>
PHP Advent Calendar 2012の4日目を担当します@mawatarinです。前日は@wa_teradaさんでした。内容は、CakePHPのbootstrap.phpとcore.phpの翻訳です。しかも全訳!大変、有り難いですねー。 bootstrap.php と core.php を詳しく見てみる。(bootstrap.php編)bootstrap.php と core.php を詳しく見てみる。(core.php 編)さて、今日もCakePHPネタです。過去のAdventCalendarでも、取り上げられたことのあるネタですが、その辺は気にせずに、CakeDCのSearchプラグインを使って、CakePHP製のWebアプリに簡単に検索機能を実装する方法をまとめました。目的毎に章立てしておりますので、チュートリアルとして、使っていただけると思います。 都合上、ソースコード
PHPのフレームワークCakePHPで作ったシステムをサーバー上で稼働させたら Warning (2): strtotime() [function.strtotime]: It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Asia/Tokyo’ for
手順として、ちゃんとして残しておこう。 今回は、http://blogmark.sakuraweb.comで CakePHP2.3のドキュメントルートにアクセスできるまでの 手順です。 【マルチドメインの設定】 さくらレンタルサーバコントロールパネルで 「ドメイン設定」⇒「ドメイン一覧の新しいドメインの追加」を押下 さくらのサブドメインで適当なドメイン(ここでは、blogmark.sakuraweb.comを追加 詳細設定で、マルチドメインの対象のフォルダを指定する ※末尾に" / "を入れると駄目らしい。 【CakePHP2.3をレンタルサーバへ転送】 WinSCP等で、www下にプロジェクトを転送します。 【.htaccessにRewriteBaseの追加】 3つの.htaccessを変更します。 /home/ユーザー名/www/プロジェクト名/.htaccess <IfModule
CakePHP / CodeIgniter / MySQL / HTL5 / CSS3 / jQuery を活用したWebシステム開発 Debugkitとは 10分程度で設置できる、CakePHPのデバッグツールのプラグイン。 Debugkitの設置方法 下記URLからファイル名の日付が最も新しいZIPファイルをダウンロードする。 http://git2zip.com/thechaw/debugkit/ ZIPファイルを解凍してできたdebug_kitというフォルダを、app/plugins以下に置く。 /app/config/core.phpのデバッグレベルを2に設定する。 Configure::write('debug', 2); 運営中の本番環境でデバッグツールを使用する場合は、以下のように記述する。 (***.***.***.**のところに開発者のIPアドレスを入れる。) if
只今、CakePHP 2.xのお勉強中。 ちょっとしたアイデアを試したくて動的にDBを切り替える方法がないかと調べた結果 /lib/Cake/Model/Datasource/DboSource.php内の public function reconnect で出来ることが解った。 とりあえず上手くいったので忘れないようにメモ書き。 AppModel.phpに追記 class AppModel extends Model { public function setDb($dbName,$DbConfig='default') { $this->setDataSource($DbConfig); $db = ConnectionManager::getDataSource($this->useDbConfig); $db->reconnect(array('database' => $dbN
CakePHPは一つのCakeのアプリケーション内でデータベースを複数扱うことが可能で、 database.phpに配列形式でいくつも設定できます。 データベースの複数定義 以下のように全く違う場所にあるデータベースを扱うことも可能です。 //一つは設定しなきゃだめ class DATABASE_CONFIG { var $default = array( 'driver' => 'mysql', 'persistent' => false, 'host' => '123.123.456.789', 'login' => 'hoge.com', 'password' => 'hoge2012', 'database' => 'hogehoge', 'prefix' => '', 'encoding' => 'utf8', ); //今回追加した別のデータベース var $hoge = ar
CakePHPを用いて多言語化をする方法をまとめます。 今のご時世、複数言語でサービスを運用するのは当たり前になりつつあります。 少なくとも1つのサービス内で、日本語、英語くらいは切り替えたいですよね。 今回はi18nを使用して多言語化をはかりたいと思います。 i18nに関しては以下のページを参考にしてみてください。 I18N【国際化】 – IT用語辞典 国際化と地域化 – Wikipedia それでは多言語化の手順を紹介していきます。 CakePHPのインストール まずはCakePHPをインストールしましょう。 今回はわかりやすいように インストール→コントローラ、ビューの作成→i18nを使って多言語化 をしようと思います。 それでは以下からダウンロードしましょう。 CakePHP – github 【tmpフォルダ書き込み権限付与】 解凍してアクセス場所に置いたら、tmp/を書き込み可
2010年02月21日 CakePHPでトップページURL設定(Routes定義) カテゴリ:コンピュータプログラム CakePHP(1.2.6)のRoutes定義について記載します。 作成したHPのトップページにコントローラを使用した場合 にURLを変更せずに出力する方法 「routes.php」を編集する。(何も編集していないことを前提で説明) ファイルパス:cakephpルート\app\config\routes.php 1.既存のRoutes定義をコメントアウトする。 //Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home')); //Router::connect('/pages/*', array('controller' => 'pages', 'action' =>
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く