ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

CakePHP

【CakePHP3.x】FlashComponentのメッセージが表示されない

タイトルだけではよくわかんないね。 _something($id, $function); $this->render('edit'); } private function _something($id, $function) { // ... $this->Flash->success(__('success!')); // ... } // ... とあるControllerの中に↑のよ…

【CakePHP3.x】AuthがかかったController::Actionをテストしようとしたらハマった

ログ残し。 qiita.com ここを参考にテストを実行する。 session([ 'Auth' => [ 'id' => 1, 'email' => 'xxx@gmail.com', 'password' => 'Lorem ipsum dolor sit amet', 'created' => '2017-01-31 14:43:15', 'modified' => '2017-01-31 14:43:15' ] ]); } pu…

Behaviorの名前空間を変更しようとしたら、できませんでした。

Controllerも階層深くできるし、いけるっしょと考えていました。 試す とあるTableクラス addBehavior('Register', [ 'className' => 'App\Model\Behavior\Users\Register' ]); // ... ディレクトリとnamespaceを変更したBehavior

【CakePHP3.x】Unable to emit headers. Headers sent in file=... line=xxx

今回jsonを返すapiを用意した。前にこのブログでも記事を書いたことがある。 www.aipacommander.com

【CakePHP3.x】query builderを使った複数条件のwhere

便利になったんだろうけど、最初の壁は乗り越えづらい。 ちとハマったので、昔みたいに軽くメモ。 cakephp3.xはquery builderが一新されている。色々方法があるとは思うが、情報探すの大変。 一番はリファレンスを見ることがだが、基礎なので、応用を考えな…

【CakePHP3.x】TableクラスでEnumを使う

DBでステータスのフィールドを用意した場合、0とか1とかでフラグを用意するんだけど、それじゃいまいちよくわからない。 なので、定数にして、DELETEとかCANCELとか名前を付けれるようにする。 CakePHP2.xでは、~/Config/const.phpってファイルを作成して、…

【CakePHP3.x】既存のデータベースからマイグレーションファイルを作成する

ドキュメントちゃんと読もう。。。 Migrations $ ./bin/cake bake migration_snapshot Initial (既存のDBから)マイグレーションファイルできたぁああああああああああ!!

【MySQL & CakePHP2.x】任意の順番でソートしたい時

「順番を1、2、3ではなくて、2,3,1にしてほしい」 順番がゲシュタルト崩壊(?) データベース設計時、ここは順番が変わるかもしれない。ってどうやって予想すればいいかな。確かに順番が必要、って最初からわかっていたら、ソートキーのカラムを作…

【CakePHP3】認証が必要なActionでのテスト

公式のサイトを見たらありました。 Testing - 3.10 session([ 'Auth' => [ 'User' => [ 'id' => 1, 'email' => 'test2@gmail.com', 'password' => 'Lorem ipsum dolor sit amet', 'created' => '2016-08-31 00:44:23', 'modified' => '2016-08-31 00:44:23' …

【CakePHP3】phpunitでテストしてみた

CakePHP2では結構お世話になりました(不具合の方向で。。。) CakePHP3ではすんなりいくかな?と思っていたけど、ダメでした。むー。なんででしょう? とりあえずphpunitインストール composerでインストールしました。 $ composer require --dev phpunit/p…

【CakePHP3】Componentで呼び元のControllerのインスタンスを利用

initialize()で、$this->_registry->getController()を使えばいける。 controller = $this->_registry->getController(); parent::initialize($config); } 動的にインスタンスを追加したら、それを他のメソッドで使えるようになった。 controller->a…

【CakePHP3.x】Auth Componentのセッションが切れた時にAjaxされたら、JavaScript側でリダイレクトさせるためのBeforeFilterを書く

タイトル長い タイトル通りの話。 Authのセッションが切れた後にAjaxでアクセスするとエラーが返ってきて、それ以上動作できない。 さらに、エラーのviewも返り、なんかキモいので、自分で作成したエラーメッセージとリダイレクトURLをJSONで渡せないかなと…

【CakePHP3】Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails ~

なんかエラーが発生 SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`a-curation`.`post_metas`, CONSTRAINT `post_metas_ibfk_1` FOREIGN KEY (`id`) REFERENCES `posts` (`id…

【CakePHP3.x】jsonを返すapiを作りたい

追記 2016/12/22 この記事うまくいかないかもしれません。 でかいデータを入れると何故かうまくいかないことが増えました。 www.aipacommander.com ↑のほうがいいかも。追記終わりです。 teratail.com これの$this->autoRender = false;を使ったほうでやりま…

CakePHP3でPluginを自作しようとしてハマる

プラグイン チュートリアルを見ながらやったのね。 $ ./bin/cake bake plugin TestPlugin # bakeでpluginディレクトリを作成 $ ./bin/cake bake controller --plugin LoadAssets Test # bakeでcontroller作成 $ ./bin/cake bake component --plugin LoadAsse…

【CakePHP3】ViewでRouterクラスを使うにはuseを使って呼び出さないといけない

CakePHP3を使って、CakePHP2みたいに普通にコーディングしていると。。。 Router::url in view generates fatal error: class not found え? まじ? クラスなくなったんかないな。」と驚いて検索したところ。 github.com You are missing a use statement. …

CakePHP3をインストール

(前もやった気がするけど。。。) 全然覚えていなかったのでメモ 環境 mac $ sw_vers ProductName: Mac OS X ProductVersion: 10.11.5 BuildVersion: 15F34 el capitanです。 php5.6をインストール phpbrewやphpenvとかでインストールしようとしたらapxsで…

いまさらCakePHP2.xを使ったここ2ヶ月のことをメモする

ここ2ヶ月、CakePHP2.xを久々に触り、立ち上げたプロジェクトで学んだことをメモする。 本当はCakePHP3.xを触りたかったけどね。 ここ最近のCakePHP2.xを使った俺のまとめ Object志向って何? おいしいの? という、プログラマwが書いた内容です。やさしい…

AngularJS1.4から、CakePHP2.xへリクエストを送ったら$this->requestでデータが取れない件

とあるプロジェクトで、AngularJSを使いました。 バックエンドはCakePHPを使いました。 例えば、AngularJSからデータをCakePHPにPostで送信した際に$this->request->dataに値が入っていませんでした。 なので調べた。 ちなみにAngularは触ってまだ2日目の超…

【CakePHP】AuthComponentとprefix routingを使った複数のログイン認証・ユーザー

通常のページでは通常ユーザー、管理画面は管理者ユーザーって要件があって、CakePHPで対応するにはどうすれば良いのかを探して実装してみた。 github.com 下記記事が参考なりました。ありがとうございますm(_ _ )m prefix routing ルーティング - 2.x ドキ…

【CakePHP】Html Helper cssにて、指定されたディレクトリ以外のcssファイルを読み込む

Html->css([ 'bootstrap.min', 'other', '/fonts/css/font.min', // webroot/ <- をルートとして記述すればおk 'icheck/flat/green' // ちなみにディレクトリを指定するにはスラッシュを書けばよい ]);

【CakePHP】bakeでインストールしたcakephpで、cakeコマンドのパスが固定の絶対パスになっていたので修正

gitのコミットメッセージみたいだな ~/app/Console/cake.php

【CakePHP】FormHelperでselect boxの中のoptionタグにattributeを指定したいとき

久々に早めの帰宅ができたので、ちょっくら走ってきました。やっぱり体動かすって気持ちいいね! すっきり気分なので、久々にブログ書く。 FormHelperでselect boxの中のoptionタグにattributeを指定したいとき CakePHPのFormHelperでselect boxを出力したい…

【CakePHP2.x】指定したModelでPaginateしたいとき

ControllerでPaginate Componentを読んだら各ActionでPaginateのメンバー変数にぶっこめば良い

【CakePHP2.x】アソシエーションで3つ以上繋げるならjoinに変更したほうが良い

というのもですね。こういうアソシエーションを用意しました。 bindModel([ 'belongsTo' => [ 'Order' => [ 'className' => 'Order', 'foreignKey' => 'orders_id' ], 'Item' => [ 'className' => 'Item', 'foreign…

【感想】いまさらだけど「CakePHP2 実践入門」を読み返した

CakePHP3.1.8が最近リリースされましたね! bakery.cakephp.org と、世の中はCakePHP3の話題で盛り上がっているはずですが、私はまだ業務でCakePHP2を使っているわけですよ。 CakePHP2 実践入門 (WEB+DB PRESS plus)作者: 安藤祐介,岸田健一郎,新原雅司,市川…

”Notice (8): Undefined index: conditions [CORE/Cake/Model/Model.php, line 2759]”

Notice (8): Undefined index: conditions [CORE/Cake/Model/Model.php, line 2759] よくわからんエラーだったけど、アソシエーションの設定が漏れてた。 hasMany = [ 'ItemsImagesRelation' => [ 'className' => 'ItemsImagesRelation', 'foreignKey' => 'i…

CakePHPのisUniqueの仕様をちょっとだけ覗く

cakephpのバリデーションでisUniqueってありますよね。 同じ値が他のレコードに存在していた場合、エラーを返してくれるやつです。 使っているとちょっと疑問に思ったことがあって、例えば、nameが"アイパー"で登録されているレコードを更新しようとした場合…

【CakePHP2.x】migartionプラグインを使ってテーブルのフィールドを変更したい

もうCakePHP3.xがでたのにまだ2かよって話ですかね。まだ移行できない気持ちはわかるけど。 2月から新しいプロジェクトに携わっていて、「しめた・・・!」と思い、「CakePHP3.xつかいましょうよ〜^^」なんて提案しようかなとメモしていたら、新しいサーバ…

【CakePHP】QRコードを出力

GitHubで探したら見つかった。ありがとうOSS。 github.com controller側 QrCode->text('http://www.yahoo.co.jp');?> </div> コードを見た感じ、GoogleChartを使用しているっぽい。 ちなみに、最初はスターが多いOSSを利用しようとした。 github.com さっそく使っ…