問題タブ [cakephp-3.x]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
json - cakephp 3.x _serializeキーが機能しない
Cakephp 3.1コントローラー関数からjsonを返そうとしています。私の問題は、_serialize フラグを使用して何をしても、ビュー テンプレート ファイルが見つからないという応答が常に返されることです。
Cake のドキュメントでは、テンプレートを使用して応答をフォーマットする必要がない場合は、_serialize フラグを設定するように指示されています。View _serializeのCake Docs
以下は、プロセスを初期化するクライアント側の Javascript です。
クライアントからの json を処理するコントローラー コード。
_serialize フラグを含めたり削除したりすると表示されるエラー メッセージ。
「テンプレート ファイル "Pages\json\module1\activity4.ctp" が見つかりません。」
誰でもこのメカニズムについて洞察を持っていますか? 私が見つけた回避策は、テンプレート ファイルを含めることですが、これは、この呼び出しが生成されるすべての場所を処理するために、本質的に空のテンプレート ファイルを数十個生成する必要があることを意味します。
何か助けてください。
cakephp - Cakephp 3 - belongsToMany アソシエーションのスルー テーブルの追加の ID フィールド
私は少し複雑な部分を含む CakePHP 3 プロジェクトに取り組んでいますが、フレームワークの公式ドキュメントでは探している答えが得られないようです。次のことを行う必要があります。
ユーザーは複数のプロジェクトに所属できます。各プロジェクトでは、現在のプロジェクトに属する各ユーザーがアプリケーションのさまざまなセクションにアクセスできます。これは、リソース ID を格納する Resources というテーブルによって処理されます。
つまり、ユーザー A は、プロジェクト A とプロジェクト B で異なる量のリソースにアクセスできます。
次の関連付けをセットアップしました。
- ユーザーは、UsersProjects を介して、複数のプロジェクトに属しています。
- ユーザーは、UsersResources を介して複数のリソースに属しています
users_resources -table には、次のフィールドがあります。
ユーザー ID | resource_id | project_id
ユーザーのリソースをプロジェクト固有にするために、 project_id -field がテーブルに追加されます。
アソシエーション構成は次のとおりです。
ユーザーテーブル:
リソース表:
ユーザーリソーステーブル:
データの整合性を支援するために、UsersResourcesTable クラスに実装された buildRules 関数もあります。
データは次のように保存されます。
patchEntity の後のエンティティ データ:
プロジェクト ID 2 でデータを保存すると、保存は期待どおりに機能します。同じデータを保存し、プロジェクト ID を 1 に変更すると ( user_idとresource_idは同じままです)、プロジェクト ID 2 の前の行がテーブルから削除されます。望ましい動作は明らかに、古いレコードがテーブルに残ることです。ただし、値が「append」の saveStrategy-option を UsersTable の Resources-association 定義に追加すると、保存が正しく行われることに気付きました (project_id 2 の行は削除されません)。しかし、append-strategy が使用されているときに既存のレコードを保存しようとすると、保存に失敗します (保存結果が false になります)。
したがって、replace-strategy を使用すると、以前のデータが削除され、append-strategy を使用すると、既存の行を更新すると、ケーキの観点からエラーが発生します。ユニークルールが原因で、ルールチェック中にエラーがスローされたと思います。
置換戦略が進むべき道だと思いますが、 project_id フィールドの値が無視され、新しい行が別の行に追加されるたびに以前のデータ (同じ user_id と resource_id を持つ) が削除されるという状況につながるようです。 project_id。
だから私の質問は:
追加のフィールドも id フィールドと見なされるように、3 番目の id フィールドを belongsToMany-association のトラフ テーブルに追加して、フレームワークがレコードをいつ更新または結合テーブルに挿入するかを認識できるようにすることは可能ですか?
テーブル内の 3 つのフィールドはすべて一意であるという考え方です。フレームワークが余分なフィールドを破棄するように見えるため、挿入と更新が期待どおりに機能しません。それとも、データベース構造に修正が必要な設計上の欠陥がありますか?
私は CakePHP の慣例に固執したいと思いますが、このシナリオに取り組むのは非常に難しいようです。任意のガイダンスをいただければ幸いです。
cakephp - CakePHP 3-コントローラーですべてのエラーとbuildRulesメッセージを表示する
すべてのエラー メッセージと buildRules を指定したこの Model/Table/UsersProfilesTable.php があります。
私の意図は、データを保存しようとしているときに、コントローラーのすべての検証エラーを一覧表示することです。
コードは後述します。
buildRules メソッドで指定されたメッセージを含むすべての検証エラーを一覧表示できる方法を誰か考えてもらえますか?
どんな助けでも大歓迎です。前もって感謝します!
平和!xD
php - CakePHP 3.0 で、CakePHP の命名規則に従わないコントローラーと関数を実装する最良の方法は何ですか?
Android には、CakePhP では許可されていないアプリ リンク検証の命名規則があります。Android では、アプリ リンクの検証が次のように強制されます。
www.exampledomain.com/.well-known/assetlinks.json/
PhP は、「.WellKnownController」という名前のクラスも、「assetlinks.json」という名前の関数も許可しません。では、CakePhP 3.0 Web サイトをこの POST に応答させるにはどうすればよいでしょうか?
php - CakePHP 3 エラー: SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1064
次のエラーが表示されます。
このエラーが発生している SQL クエリは次のとおりです。
quoteIdentifiers config\app を有効にしましたが、次の新しいエラーが発生します。
クエリは次のようになります。
「大学のコル」をキーワード「COL」に取っていると思いますが、よくわかりません。これを修正する方法は?
これは、MySQL クエリを生成する CakePHP コードです。
php - CakePHP 3:存在しない関数のルートエラーがありません
存在しない関数に対して「Missing Route」エラーが発生するのはなぜですか。
Reservations
コントローラー内にはadd
、1 つの引数を持つ関数があります。
マッチングルート:
任意のページにアクセスすると、次のエラーが表示されます。
http://i.stack.imgur.com/ESX5I.jpg
エラーメッセージには次のように記載されています。
エラー: "array ( 'controller' => 'Reservations', 'action' => 'add', 'plugin' => NULL, '_ext' => NULL, )" に一致するルートが見つかりませんでした。
...引数のない関数を持っていないので、これは奇妙です。add()
代わりに、add($carid)
1つの引数を持つ関数があります。
しかし、そのルートを追加すると、すべて正常に動作します:
何が起こっている?