CakePHP3にはEntityに$_accessibleプロパティというものがあります。 http://book.cakephp.org/3.0/ja/orm/entities.html#mass-assignment ↓Bakeするとよく見るコレです。 この状態だとidは変更不可、それ以外は変更可ということになり、Save時のEntityのプロパティに値をセットしたとしても保存されません。 これを利用して、今回ある項目はinputフォームにはreadonlyを付けてPOSTされるけど保存されない、というような実装を行いました。 という前提を元に今回ハマった点について話します。 ハマった問題 リレーションを貼った先のEntityに想定したaccessible設定しているのに保存されない! 構成 テーブル関係 企業情報テーブルとそれに紐づく口座情報を格納する2つのテーブルがあり、hasma
CakePHP3で他のテーブルのマスタテーブルからセレクトボックスを作る マスタのテーブルを作成し、そのマスタテーブルの情報を基にしてセレクトボックス(プルダウンリスト)を作成する方法を解説します。 具体的には、下記の「Master Roles(権限マスタ)」の項目をテーブルから取得するイメージです。 想定しているテーブル 想定しているテーブルは、以下の「ユーザテーブル」と「権限マスタテーブル」です。 ユーザ情報に、権限マスタから権限情報を編集できるようにしたのち、ユーザ認証機能を実装し、ユーザの持つ権限によって利用できる機能、できない機能を振り分けることを想定しています。 そのために、ユーザ情報の登録の際に「権限」をプルダウン(セレクトボックス)で選択できるようにする、というのが趣旨になります。 【ユーザテーブル】 CREATE TABLE `users` ( `id` int(11)
ビュー¶ class Cake\View\View¶ ビュー (View) は MVC の V です。ビューはリクエストに対する出力を生成する役割を担います。 大抵の場合、これは HTML フォームや XML、JSON などですが、ファイルのストリーミングや、 ユーザーがダウンロード可能な PDF の生成もビューレイヤーの役割となります。 CakePHP では下記の典型的な描画シナリオに対応するためのいくつかの組み込みのビュークラスを 用意しています。 XML や JSON ウェブサービスを作成するには JSON と XML ビュー を利用できます。 保護されたファイルや動的に生成されたファイルを提供するには ファイルの送信 を利用できます。 複数テーマのビューを作成するには テーマ を利用できます。 App ビュー¶ AppView はアプリケーションの既定のビュークラスです。 AppV
2016年8月28日2018年10月20日 FriendsOfCake/search ■composerを使ってプラグインをインストール ※同階層にcomposer.pharファイルが必要 —————— composer.pharファイルが無い場合は、下記ページの「Command-line installation」に記載してあるPHPのコマンドを実行。 https://getcomposer.org/download/ php -r ・・・ ・・・ —————— / └─var └─www └─html └─hoge.com └─app ←A.ここにcomposerをインストールして、composer.pharファイル作成 ├─bin ├─config ├─logs ├─plugins ├─src ←C.Application.php ├─tests ├─tmp ├─vendor ←B.
CakePHP3で vendorに置いたプラグインを手動で読み込み使う方法解説 CakePHP3でのプラグインは Composerを利用してインストールする方法がメイン CakePHP3で外部のライブラリやプラグインを使う場合は、Composerを使ってインストールしましょう、と書いてあります。 公式サイトや解説してくれているブログなども Composerを利用する方法の解説がほとんどです。 私も下記の様に、Composerを使ってプラグインをインストールする方法を解説しています。 CakePHP3でcomposerを利用してライブラリ・プラグインをインストールする方法 ですが、自作のライブラリであったり、Composerからインストールするファイルが用意されていないプラグインもありまして、そのようなプラグインをどうやって利用するか、詳しく解説しているサイトが見当たらない状況でした。 そん
Usage: cake bake.bake model [subcommand] [options] [<name>] Subcommands: all Bake all model files with associations and validation. To see help on a subcommand use `cake bake.bake model [subcommand] --help` Options: --help, -h Display this help. --verbose, -v Enable verbose output. --quiet, -q Enable quiet output. --plugin, -p Plugin to bake into. --force, -f Force overwriting existing files witho
GitHubで’cakephp search’で検索 Starの多い順に並べてCakePHP3でつかそうなものからピックアップしました。で以下を採用。 friendsofcake/search https://github.com/FriendsOfCake/search ドキュメントのルートに行ってcomposerでインストール $ composer require friendsofcake/search cakeコマンドでプラグイン追加 $ ./bin/cake plugin load Search いちおう、config/bootstrap.phpの最後あたりを確認して準備OK Plugin::load('Search'); モデル(Table) initializeに addBehavior()と、検索条件を追加 public function initialize(array
デザインがリニューアルされたCakePHP3.0でbakeしよう! 前提条件 CakePHP 3.0 をインストール済みであること ○参考 CakePHP 3.0 インストール 実際にbakeを行う 実際にbakeを行います。 注意点は、Cake2系とはコンソールの設置場所が変更されていて、binディレクトリの下になります。 また、bakeの実行方法もパラメーターで指定するように変更されています。 php bin/cake.php bake controller Users php bin/cake.php bake model Users php bin/cake.php bake template Users // controller, model, templateを一括で作成するallもあります。 php bin/cake.php bake all users
テストの自動化 CakePHP3 + PHPUnitでテストを自動化する方法を紹介したいと思います。 テスト自動化を行う事により、ターミナルから下記のようなコマンドを実行すると $ vendor/bin/phpunit tests/TestCase グラフィカルにテスト結果が閲覧出来ます。 コードレベルで未チェック部分は赤で表示されるのでテストにモレがなくなる事が期待出来ます。 手順 1.PHPUnit をインストール 下記コマンドでPHPUnitをインストールします。 $ php composer.phar require --dev phpunit/phpunit 2.インストールが成功したか確認 下記コマンドでヘルプが表示されればOKです。 $ vendor/bin/phpunit -h 3.テストファイルをbakeコマンドで作成 下記コマンドでOrderコントローラーのテストファイ
$vendor/bin/phpunit PHPUnit 5.7.13 by Sebastian Bergmann and contributors. .IIIII....IIIIIII. 18 / 18 (100%) Time: 506 ms, Memory: 15.25MB OK, but incomplete, skipped, or risky tests! Tests: 18, Assertions: 24, Incomplete: 12. こうやって実行すると、 tests/TestCase の下のテストコードたちが 実行されます。 細かい規約は以下 CakePHPのCookBookから引用 テストを含むPHPファイルは、 tests/TestCase/[Type] ディレクトリに置きます。 ファイル名の最後は必ずただ .php とだけ書くのではなく Test.php とします。
プラグイン¶ CakePHP では、コントローラー・モデル・ビューの組み合わせを設定し、 他の CakePHP アプリケーションで使用できるよう事前にパッケージ化された アプリケーションプラグインとしてリリースできます。あなたのアプリケーションの1つに、 素敵なユーザー管理モジュールやシンプルなブログやウェブサービスモジュールを作成したら、 CakePHP プラグインとしてパッケージ化してみませんか?そうすれば、他のアプリケーションで 再利用したり、コミュニティーで共有したりすることができます! CakePHP プラグインは、ホストアプリケーション自身とは基本的に分離されており、 一般的にきちんとパッケージ化され、他のアプリケーションではほとんど手間をかけずに 再利用できる明確な機能を提供します。アプリケーションとプラグインは、それぞれの空間で動作しますが、 アプリケーションの設定によって
Bake でコード生成¶ cake コンソールは、 PHP CLI (command line interface) で実行します。 もしスクリプトの実行に問題があるなら、以下を満たしてください。 PHP CLI がインストールされているか適切なモジュールが有効か確認してください (例:MySQL, intl)。 データベースのホストが 'localhost' で問題があるなら、代わりに '127.0.0.1' を使って下さい。 PHP CLI でこの問題がおこる可能性があります。 使っているコンピューターの設定に応じて、 bin/cake bake で使用する cake bash スクリプトの 実行権限を設定する必要があります。 bake を実行する前にデータベースとの接続を確認しましょう。 bin/cake bake を引数無しで実行すると可能なタスクを表示できます。 Windows
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く