タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

CakePHPに関するsachiko-kameのブックマーク (25)

  • [CakePHP3]Modelで後から追加したカラムだけ保存できない場合 CodeLab(コードラボ)技術ブログ

    あるモデルで、特定のカラムだけ保存できない。なんでやー。 うーん。これ後から追加したやつだな。 CakePHP3.x 結論としては、原因は設定が足りていないのと、キャッシュの問題でした。 原因1 _accessible Cake3からカラムにパーミッションが加わりました。 エンティティ― Model\Entity\(モデル名).php に protected $_accessible=[]; というメンバ変数があって、これでカラムにアクセスに制限をかけることができます。 ここにカラム名を記載しておかないと書き込みできないんです! というか、newEntity()やpatchEntity()でエンティティ―を作る際に、ここに記載されてないカラムは無視されてしまって、保存できなくなってしまうというわけです。 最初はたぶんbakeで作るから勝手についてくるけど、後から追加したかラムで追加し忘れる

    [CakePHP3]Modelで後から追加したカラムだけ保存できない場合 CodeLab(コードラボ)技術ブログ
    sachiko-kame
    sachiko-kame 2021/09/05
    登録上手くいかない時『accessible』に値が入っているか確認
  • ローカルDBからbakeコマンドでfixture生成 #cakephp3 - ユアマイスター株式会社エンジニアブログ

    どうも。ユアマイスター星(@inase17000)です。 現在こそこそテストコードを毎日15分〜30分リファクタリングする活動をしておりまして、その中でマスター系のデータのFixtureがだいぶ昔に作られたままで実情と合っていないところがあったので最新化しようと思いました。 「Fixtureのコードを1レコードずつ手で作らないといけないなんてありえない!」と思ったので、楽できる方法を速攻探したところズバリあったのでメモしておきます。 環境 PHP : 7.2.18 CakePHP : 3.6.13 ググってみる 先人がブログを書いてくれていて、参考*1にさせていただきました。ありがとうございます。 オフィシャルドキュメント*2はなんだかちょっとよくわからないことになっていたので、貢献したくなりました。(また今度...) helpを読んでみる ブログにもコマンドの記載があったんですが、細かい

    ローカルDBからbakeコマンドでfixture生成 #cakephp3 - ユアマイスター株式会社エンジニアブログ
    sachiko-kame
    sachiko-kame 2021/07/06
    “テスト用のフィクスチャー作成した”
  • プラグイン - 4.x

    プラグイン¶ CakePHP では、コントローラー・モデル・ビューの組み合わせを設定し、 他の CakePHP アプリケーションで使用できるよう事前にパッケージ化された アプリケーションプラグインとしてリリースできます。あなたのアプリケーションの1つに、 素敵なユーザー管理モジュールやシンプルなブログやウェブサービスモジュールを作成したら、 CakePHP プラグインとしてパッケージ化してみませんか?そうすれば、他のアプリケーションで 再利用したり、コミュニティーで共有したりすることができます! CakePHP プラグインは、ホストアプリケーション自身とは基的に分離されており、 一般的にきちんとパッケージ化され、他のアプリケーションではほとんど手間をかけずに 再利用できる明確な機能を提供します。アプリケーションとプラグインは、それぞれの空間で動作しますが、 アプリケーションの設定によって

    sachiko-kame
    sachiko-kame 2021/02/27
    "独自プラグイン"
  • Class Validator | CakePHP 3.9

    sachiko-kame
    sachiko-kame 2021/02/21
    "バリデートルール"
  • データの検証 - 4.x

    データの検証¶ データを保存する 前におそらくそのデータが正しく 矛盾がないことを保証したいはずです。 CakePHP ではデータの検証には二つの段階があります: リクエストデータがエンティティーにコンバートされる前、 データ型や書式まわりのバリデーションルールが適用されます。 データが保存される前、ドメインまたはアプリケーションルールが適用されます。 これらのルールはアプリケーションのデータの一貫性の保証に役立ちます。 エンティティー構築前のデータ検証¶ データからエンティティーを構築する時、データの検証 (バリデーション) ができます。 データのバリデーションではデータの型、形状およびサイズなどを確認することができます。 既定ではリクエストデータがエンティティーに変換される前に検証が行われます。 もしも何らかのバリデーションルールが通らなかった場合、 返されたエンティティーはエラーを含

    sachiko-kame
    sachiko-kame 2021/02/21
    "バリデーション追加 クロージャーメソッドお好きなものを"
  • データの検証 - 3.10

    データの検証¶ データを保存する 前におそらくそのデータが正しく 矛盾がないことを保証したいはずです。 CakePHP ではデータの検証には二つの段階があります: リクエストデータがエンティティーにコンバートされる前、 データ型や書式まわりのバリデーションルールが適用されます。 データが保存される前、ドメインまたはアプリケーションルールが適用されます。 これらのルールはアプリケーションのデータの一貫性の保証に役立ちます。 エンティティー構築前のデータ検証¶ データからエンティティーを構築する時、データの検証 (バリデーション) ができます。 データのバリデーションではデータの型、形状およびサイズなどを確認することができます。 既定ではリクエストデータがエンティティーに変換される前に検証が行われます。 もしも何らかのバリデーションルールが通らなかった場合、 返されたエンティティーはエラーを含

    sachiko-kame
    sachiko-kame 2021/02/21
    “バリデーションを無効有効切り替え”
  • ユーザ登録(仮登録・メール・本登録)

    以前1.3版で投稿した「ユーザ登録」処理の2.x版を作成しました。フローは同じで以下のようにします。 1. メールアドレス・パスワードでユーザ登録 2. この時点では仮登録として、登録用のURLリンクをメールで送付 3. 送付されたリンクをクリックして「登録完了(activate)」とする ユーザ(users) テーブル statusを用意し、デフォルトを1としています。"1"を仮登録状態でログイン不可、"0"を登録としログイン可能にします。その制御は、「scope」が使えそうです。 -- usersテーブル CREATE TABLE IF NOT EXISTS `users` ( `id` INT NOT NULL AUTO_INCREMENT , `username` VARCHAR(255) NOT NULL , `password` CHAR(128) NOT NULL ,

    ユーザ登録(仮登録・メール・本登録)
    sachiko-kame
    sachiko-kame 2021/01/19
    "会員登録"
  • how to read record with composite primary key · Issue #7088 · cakephp/cakephp

    sachiko-kame
    sachiko-kame 2021/01/03
    "複合キーget"
  • 【CakePHP 2.x】Controller内でトランザクションをかける - pospomeのプログラミング日記

    CakePHPの公式サイトを確認すると、 モデル内で以下のようにかけるらしい。 <?php $dataSource->begin(); if (/*すべて成功*/) { $dataSource->commit(); } else { $dataSource->rollback(); } でも今回はコントローラーでかけたい。 ということで、トランザクション管理用のモデルを作った。 <?php App::uses('AppModel', 'Model'); class TransactionManager extends AppModel { public $useTable = false; public function begin(){ $dataSource = $this->getDataSource(); $dataSource->begin($this); return $dat

    【CakePHP 2.x】Controller内でトランザクションをかける - pospomeのプログラミング日記
    sachiko-kame
    sachiko-kame 2021/01/03
    "トランザクション"
  • [CakePHP3]エラー対処方法Tips:「エラーメッセージ: SQLSTATE[HY000]: General error: 11 database disk image is malformed.」と出たら... - Qiita

    「エラーメッセージ: SQLSTATE[HY000]: General error: 11 database disk image is malformed.」と出たら... エラー発生箇所がSQLiteのドライバーで発生している場合、debugkitでの問題である可能性が高いです。 とりあえずエラーメッセージ「database disk image is malformed.」から察するにファイルが壊れているっぽいので「/tmp/debug_kit.sqlite」をいったん削除。 その後、アプリを動かしたらエラーは解消され、debug_kit.sqliteも自動で生成されました。

    [CakePHP3]エラー対処方法Tips:「エラーメッセージ: SQLSTATE[HY000]: General error: 11 database disk image is malformed.」と出たら... - Qiita
    sachiko-kame
    sachiko-kame 2020/12/19
    “+ debugkit 場合削除、権限修正がみそ”
  • CakePHP3チュートリアルで日付と時刻のDateTimeでエラーが出たときの対処方法 | エス技研

    CakePHP3のチュートリアルの「ブックマークチュートリアル」のエラー CakePHP3のチュートリアルの「ブックマークチュートリアル」 CakePHP3には、CakePHP3を使ってプログラムを開発する仕組みを理解するためのチュートリアルが用意されています。 その一つに「ブックマークチュートリアル」があります。 https://book.cakephp.org/3.0/ja/tutorials-and-examples/bookmarks/intro.html そのチュートリアルを読みながら、その中にある「カスタム Finder メソッド」のリンクについて調べていました。 その際、「データの取り出しと結果セット」の「データのロードに Finder を使う」について調べている際、下記のコードがありました。

    CakePHP3チュートリアルで日付と時刻のDateTimeでエラーが出たときの対処方法 | エス技研
    sachiko-kame
    sachiko-kame 2020/12/15
    "\DateTime"
  • CakePHPで多言語対応ファイルの更新が反映されない時の対処法 - Qiita

    app/tmp/cache/persistentにあるファイルを削除すると多言語ファイルの変更が反映されます。 リリース時とかに要注意かな。 あと、多言語対応でpoeditとかでpoファイルを編集してmoファイルができてるときは、poよりmoが優先する。 優先順位的には、キャッシュ→moファイル→poファイル という順みたい。 試しにmoファイル削除したらpoファイルだけでもちゃんと動作してくれたので、開発中はmoファイル削除して作業した方が楽かもね。

    CakePHPで多言語対応ファイルの更新が反映されない時の対処法 - Qiita
    sachiko-kame
    sachiko-kame 2020/11/23
    "ローカライズファイルの反映"
  • [CakePHP3]ContainでSelectする場合の注意点 - Qiita

    ドキュメントをきちんと読めばわかる話しだが、少し手間取ったので念の為にメモっとく。 関連するテーブルのデータを取得したい場合は、containを利用すると思う。 その時に関連テーブルのカラムにデータ容量の大きいカラムがあるので、そのカラムは避けて取得したい。 そんな時は以下のような方法でselectするカラムを絞り込める。 例) $this->テーブルモデル名->get($id, [ ‘contain’ => [ テーブルA => function($q) { return $q->select([‘name’]) } ] ]); ただし!上のやり方ではデータがあったとしても取得できない。 なぜか!? それは外部キーの指定が必要だからだ。例えば外部キーがuser_idとしよう。 その場合、以下のようにuser_idを明示的に指定しなければならない。 例) $this->テーブルモデル名->

    [CakePHP3]ContainでSelectする場合の注意点 - Qiita
    sachiko-kame
    sachiko-kame 2020/10/25
    "ネスト セレクト"
  • CakePHP 4 で JSON 出力を実装する方法 / Twin Turbo Computing

    はじめに CakePHP には JSON 形式で出力するための機能が組み込まれています。方法にはいくつかありますが、今日は1つのアクションで JSON 出力のみを行う場合と、URL に応じて HTML 表示と JSON 出力の両方を行う場合の2パターンをご紹介します。 目次 JSON 形式で出力 画面表示と JSON 出力を1つのアクションで行う 注意事項 おわりに 1. JSON 形式で出力 実装するアクションの出力が JSON 形式だけでいい場合の実装例をご紹介します。動作確認には下記テーブルを使用しました。 CREATE TABLE `scores` ( `id` int(11) NOT NULL, `name` varchar(255) NOT NULL, `nickname` varchar(255) NOT NULL, `score` int(11) NOT NULL, `cr

    sachiko-kame
    sachiko-kame 2020/09/19
    "jsonの出力"
  • テーブルオブジェクト - 4.x

    テーブルオブジェクト¶ class Cake\ORM\Table テーブルオブジェクトは特定のテーブルに保存されたエンティティーのコレクションへのアクセスを提供します。 それぞれのテーブルは、与えられたテーブルによって繋がれた関連付けられたテーブルクラスを持ちます。 もし、与えられたテーブルの振る舞いをカスタマイズする必要ないなら、CakePHP はテーブルのインスタンスを 作ります。 テーブルオブジェクトと ORM を作る前に データベースへの接続 がなされているか確かめましょう。 基的な使い方¶ まずはじめにテーブルクラスを作ってください。これらのクラスは src/Model/Table に作ります。 テーブルは、リレーショナルデータベースに特化したモデルコレクションです。 そして、CakePHPORM の中で、あなたのデータベースへの主なインターフェースです。 最も基的なテ

    sachiko-kame
    sachiko-kame 2020/03/29
    "デフォルトコールバック"
  • CakePHP Modelの中で他のモデルを使う(App:import を作ってクラスを読み込む) - Qiita

    (CakePHP ver 2.x) Controllerから複数のModelを呼び出すことは簡単に出来ます。 public $uses = array(‘Model1’,’Model2’); のようにしてModelの設定をするだけで、Model内のfunctionを呼び出せます。 ここでは、Modelの中で他のModelの中のfunctionを使うのも簡単にできちゃうよってお話をします。 登場するのは App:import。 App:importは適用範囲が広いようですが、ここではModelを呼び出します。 よく使う処理をまとめたクラスを「vendors」に入れて「App:import」で呼び出したりして使ったりするようです。 やり方は簡単3Step ***** step1:modelの呼び込み step2:クラスのインスタンス化 step3:実際に使う ***** ここでは、読み込むmo

    CakePHP Modelの中で他のモデルを使う(App:import を作ってクラスを読み込む) - Qiita
    sachiko-kame
    sachiko-kame 2020/03/23
     "モデルたくさん使う"
  • CMS チュートリアル - タグとユーザー - 4.x

    CMS チュートリアル - タグとユーザー¶ 基的な記事の作成機能が作成されたので、複数の作成者が CMS で作業できるようにしましょう。 前回は、全てのモデル、ビュー、コントローラーを手作業で構築していました。今度は、 Bake コンソール を使ってスケルトンコードを作成します。 Bake は、CakePHP が CRUD アプリケーションのスケルトンを とても効率的に作成するために、規約を活用した強力なコード生成 CLI ツールです。ユーザーコードを構築するために bake を使ってみましょう。 cd /path/to/our/app bin/cake bake model users bin/cake bake controller users bin/cake bake template users これらの3つのコマンドは次を生成します。 テーブル、エンティティー、フィクスチャ

    sachiko-kame
    sachiko-kame 2020/03/13
    “bin/cake bake template users”
  • Html - 4.x

    Html¶ class Cake\View\Helper\HtmlHelper(View $view, array $config = [])¶ CakePHP における HtmlHelper の役割は、 HTML に関連するオプションを より簡単、高速に作成し、 より弾力的なものに変えることです。このヘルパーを使うことで、アプリケーションの足どりはより軽くなり、 そしてドメインのルートが置かれている場所に関して、よりフレキシブルなものになるでしょう。 HtmlHelper にある多くのメソッドは $attributes という引数を持っています。 これにより、いかなる追加属性もタグに付け加えることができます。 ここでは、 $attributes パラメーターを使用する方法の例をいくつか紹介します。 欲しい属性: <tag class="someClass" /> 配列パラメーター: ['

    sachiko-kame
    sachiko-kame 2020/03/12
    "HTMLヘルパー"
  • CakePHP : A Rapid Development Framework :: Home

    New CakePHP 5.0 Chiffon. Faster. Simple. Delicious. What's new in version The migration guide has a complete list of what's new in. We recommend you give that page a read when upgrading. A few highlights from 5.0 are: PHP 8.1 required. Improved typehints across the framework. CakePHP now leverages union types to formalize the types of many parameters across the framework. Upgraded to PHPUnit 10.x

    CakePHP : A Rapid Development Framework :: Home
    sachiko-kame
    sachiko-kame 2020/01/03
    "公式Home"
  • FormHelper - 2.x

    FormHelper¶ class FormHelper(View $view, array $settings = array())¶ FormHelper はフォーム作成時の力作業のほとんどを代行してくれます。 フォームをすばやく作成する機能に特化して、バリデーション (入力値の妥当性検査)や部品の配置、レイアウトを効率化します。 FormHelper はまた柔軟でもあります。 通常は組み込まれた規則に沿ってほとんどのことをやってくれますが、 特定のメソッドを使って必要な機能だけを使うこともできます。 フォームの作成¶ FormHelper の利点を活用するために最初に使うメソッドは create() です。この特別なメソッドはフォームの開始タグを出力します。 FormHelper::create(string $model = null, array $options = array

    sachiko-kame
    sachiko-kame 2020/01/03
    "form"