公開日 2018.1.30更新日 2018.1.31カテゴリ:CakePHPタグ:PHP,CakePHP,3.5,QueryBuilder,QueryExpression,ConnectionManager
こんにちはPHP Matsuriでは色々とお世話になってる@kozoです。 この記事は2014年CakePHP Advent Calendarの11日目です CakePHP 3系からモデルは大きく変わり、戻り値が配列からオブジェクトになるとか、Modelが1ファイルだったものがTableとEntityに分かれるなど色々変わって非常に便利になってます! 今回は大きく変わったもう1個のfind(SELECT句)のSQLの組み立て方法について調べてみました。 find QueryBuilderの開始地点になり、SELECT用のQueryオブジェクトが生成されます。 QueryオブジェクトをメソッドチェーンでつなげることでSQLを組み立てます。 // 基本的な使い方 $this->Users->find() ->where(条件A) ->where(条件B) ->order(ソート条件A) ->o
こんにちは、Apple Watch Series 2を買いましたtanakaです。心拍数、歩数、消費カロリーなどを数値化してくれると、日常がゲームのように感じられて楽しいですね。 最近のプロジェクトで、CakePHP3アプリをCircleCIでビルドする環境を構築しましたので、 アプリを作成するところからCircleCIでビルドするまでをご紹介します。 リポジトリがGitHubで公開されても良いなら、無料で試せますヨ。 目次 継続的インテグレーション(Continuous Integration)とは 前提 Step 1) CakePHP3アプリの作成 CircleCIでビルドするまでの流れ Step 2) GitHub上のリポジトリにPushする Step 3) CircleCI にアカウント登録 Step 4) プロジェクトを選択して、最初のビルドを実行 ビルドで何をやっているか St
CakePHP3で一つのコントローラないでお互い独立したテーブルを扱うには単純にTableRegistry::getするだけです。 下記サンプルはbakeした際に自動生成されるコードをベースに作成しました。useに「use Cake\ORM\TableRegistry;」を追加すると上記のTableRegistryが使用できるようになります。 自動生成されるコントローラをベースにすると 1.use Cake\ORM\TableRegistry;を追加 2.TableRegistry::getでテーブルをインスタンス化(例ではinitialize内で2つのテーブルを生成) 3.ビューに渡す(例ではindexアクション内) (ビュー内で両者を表示) コントローラ例 <?php namespace App\Controller; use App\Controller\AppController;
TL;DR CakePHP3 の bake コマンドで生成されるファイルの内容をカスタマイズしたい場合、対応するテンプレートファイルを src 以下にコピーして追加して内容を書き換えるだけでカスタマイズできます。 Model ファイルを bake する例 まずは通常通り Model 関連ファイルを作成するコマンドです。 テーブル名が users の場合は以下のようなコマンドを実行すると焼き上がります。 bin/cake bake model Users 実行すると以下4ファイルが生成されます。 src/Model/Table/UsersTable.php (Table) src/Model/Entity/User.php (Entity) tests/Fixture/UsersFixture.php (Fixture) tests/TestCase/Model/Table/UsersTab
Rails を真似て作られたといわれている CakePHP で、 部分テンプレートの使用例を説明します。 英語ドキュメントを見ると正しく設定できるのですが、 日本語ドキュメントは古い状態なので、日本語ドキュメントを見ていると解決できません。 環境 PHP 5.5.9 CakePHP 3.0.9 Rails での 部分テンプレート の使い方 rails では 例えば rails g scaffold xxxx で自動的に作成した場合、 _form.html.erbというファイルが作成されます。 これが部分テンプレートです。 ファイルの先頭は _ になっており、 new.html.erb などの中で次のように呼び出します。
諸事情あって、バタバタしているyandoです。 18時過ぎに自分の番である事に気がついてしまいましたが、この記事はCakePHP アドベントカレンダーの9日目です。 CakePHP3で一新されたORMは「結果が配列からオブジェクトになった」というだけではない違いがあります。 それが Eager loading と Lazy loading です。この概念を理解していないとORMの機能を間違って使ってしまうかもしれません。 何が起きるの? N+1問題 ORMからクエリを実行した時にJOINを使ったクエリを実行するか、シンプルなクエリを実行するかのルールが分かりますか? 従来のCakePHPではJOINの条件などに応じて自動的に決定されており、関連データを取得するためのクエリが大量に実行される場合がありました。たとえば画面に表示している20件のデータを取得するクエリを実行し、その後に20件のデ
こんにちは、やまべです! CakePHP3で私が自分で使う家計簿を作ります。 私がやりたいことが実現できる家計簿アプリが見つからなくて、いつか作ろうと思っていたモノです。 無駄にレスポンシブに作りたいw 環境、使用プラグイン等はコチラの記事に追加していきます。 PHPで家計簿アプリ[0] 環境情報・記事一覧 - やまべ日記 今日の流れ CakePHP3インストール DB作成 Bake!でベースのphpファイルを一気に作成 ルーティング設定 Bootstrap3、プラグインインストール 1.CakePHP3インストール CakePHP3のインストール方法はコチラと一緒です。 http://yamabe.hatenablog.com/entry/2015/05/16/195557 プロジェクト名だけkakei_managerという名前に。ダサいですね。命名センス皆無です。 2.DB作成 今回作
データを登録する際 1件ずつ登録するか、一括で登録するか… 環境 CentOS7.x php7.0.3 cakephp3.2.3 一括で登録 sample1 src/Shell/Sample1Shell.php <?php namespace App\Shell; use Cake\Console\Shell; use Cake\ORM\TableRegistry; /** * Sample1 shell command. */ class Sample1Shell extends Shell { /** * main() method. * * @return bool|int Success or error code. */ public function main() { // サンプルデータ準備 $postList = [ [ "title" => "aaa1", "body"
CakePHP3では、saveAllがない cakephp2系だと、saveAllというのがあって、 複数行INSERTするときにはそれを使ってました。 でも、cakephp3.xだと、saveAllはなくなっていました。 これがCakePHP3式のsaveAllだ...! で、どうしたらいいか調べたところ、 ドキュメント(英語)にこんな記載がありました。 そちらで示されているサンプルコードを、一部変更して記述すると、 下記のような形になってます。 // TableRegistryでモデル取得 $articles = TableRegistry::get('Articles'); // 保存するデータ(2つ) $data = [ [ 'title' => 'First post', 'published' => 1 ], [ 'title' => 'Second post', 'publi
In :English In :español 菊池 祐騎です。 CakePHP3.0にSmartyを入れる手順です。 2014/12/14現在最新版である CakePHP 3.0.0-beta2 を前提とした記事です。 CakePHPをインストール 割愛 インストール方法を加筆した最新記事はこちら http://qiita.com/yukikikuchi/items/3c0c19d17c62bdd56c8c SmartyViewクラスをダウンロード https://github.com/yukikikuchi/cakephp3-smartyview をダウンロード Smarty本体の設置 Smarty本家サイト http://www.smarty.net/ からstableをとってくる 2014/12/14現在の最新版は3.1.21です。 app/vendor/smarty にlib配下
CakePHP3 公式ページに掲載されているブックマーク・アプリケーションのチュートリアルをやってみました。CakePHP3 はモデルのデータを配列じゃなくてオブジェクトで取得できたり、Composer が標準で対応されたりとさらに便利になっています。 ブックマークチュートリアル – CakePHP Cookbook 3.x ドキュメント Bookmarker Tutorial – CakePHP Cookbook 3.x documentation 公式のチュートリアルと違う方法で進めた箇所もありまして、例えばデータベースのテーブル作成にマイグレーション機能を利用している点などです。本格的な開発時にはマイグレーションを使うのは必須になりますので。 CakePHP 3 を使うためのシステム要件は以下をチェック。 インストール・システム要件 – CakePHP Cookbook 3.x ドキ
今回はCakePHP3やLaravel5環境を簡単に構築できる「Cakebox」に、phpMyAdminをインストールする手順をメモしていきます。 この記事の環境 Cakebox 1.0-alpha3 CakePHP 3.0.8 Cakeboxについて Cakeboxはとても便利な環境構築ツールで、Vagrantで仮想環境を立ち上げてくれます。すぐに開発に取り掛かれる環境になっていますので、MySQLも最初から入っていますが、phpMyAdminは別途インストールする必要があります。 今回は公式ドキュメントを参考にして、 導入済みのCakeboxの中にphpMyAdminをインストールしていきます。 hostsファイルを書き換える まず最初にhostsファイルを書き換えて、末行に下記の一文を追記します。これにより、後ほどCakebox内にインストールするphpMyAdminへhttp://
Sunday, April 19, 2015 03:19:00 PM Cakebox CakePHP3 CakePHP PHP CakePHP3の開発環境を構築するのは、以前にも書いたとおり FriendsOfCake/vagrant-chef を便利に使っていたのですが、先日 Twitter の TL に流れてきた Cakebox というのが気になっていたので、使ってみました。 結論としては「CakePHPで何かつくってみたいなら、使わない理由がない」ということです。 Cakeboxとは CakeboxはAlt<3 Because projects need loveというオランダのプロジェクトのリポジトリにあり、アムステルダムのbravo-kernel氏が中心になって作っているようです。またCakePHPのコアデベロッパでもあるceeram氏もcontributeしているので、アムステ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く