問題タブ [cakephp-model]

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.

0 投票する
7 に答える
67024 参照

cakephp - save() は false を返しますが、CakePHP でエラーは発生しません

私のデバッグ値は に設定されて2おり、必要なものを除いてすべてのクエリが表示されています。

モデルItemsでこのメソッドを呼び出すコントローラーメソッドがあります( Item belongsTo User ):User

$email$passwordが関数に正しく渡されている (そして正当なデータが入力されている)ことを確認しました。emailおよびは、モデルpassword内のフィールドの名前です。User

$this->save()が返されていることも確認しましたfalseが、これが発生したページを表示すると、クエリがデバッグで出力されておらず、エラーがスローされていないため、何が問題なのかわかりません。

エラーを確認する方法、またはクエリが実行されていないように見える理由についてのアイデアはありますか?

奇妙なことに、この直後に、まったく同じ方法でデータを保存する別のモデルがあり、問題なく終了します。

0 投票する
6 に答える
14355 参照

cakephp - Cakephp は 2 つのフィールドに固有ですか?

ユーザーが2つの電子メールアドレス(email1とemail2)を入力できる登録フォームがあります。マーケティングの要件は、それらが一意である必要があるということです (10 人のユーザーがいる場合、10*2=20 の一意の電子メール アドレスがあるというように一意です)。

システムはすでに Cakephp で構築されているので、私が知りたいのは、箱から出してすぐにこれを実行できる isUnique 機能 (1 つのフィールドで一意) に似たものがあるかどうかです。それとも、これを自分でコーディングする運命にありますか? 前もって感謝します。

編集:リチャードの例に基づいて構築された、これは私にとってはうまくいきました:

0 投票する
2 に答える
4998 参照

php - CakePHP - モデル内の特定のフィールドで再帰的ですか?

私は CakePHP にかなり慣れていませんが、コツをつかみ始めていると思います。関連するテーブル情報を再帰的に取得しようとしていますが、再帰する関連モデルを指定したいと考えています。私の目標を示す例を挙げましょう。

会社名、ウェブサイトなどの情報を持つモデル「Customer」があります。また、「Distributor」や「Manufacturer」などの名前と説明など、説明的なカテゴリ情報が含まれているだけの「CustomerType」に属しています。

「Customer」で検索を行うとき、関連付けられた「CustomerType」と「Address」情報をサブ配列として取得したいのですが、これは hasMany と belongsTo の関連付けを適切に設定するだけでうまくいきます。しかし、ここに私の問題があります。関連する州/国情報を取得したいのです。したがって、各「Address」配列行に「state_id」だけではなく、「state」=> array(「id」= 20、「name」=「New York」、...) などを含める必要があります。

Partner モデルで $recursive をより高い値 (たとえば 2) に設定すると、各「住所」の都道府県情報に必要なものが得られます。しかし、それは「CustomerType」でも再帰するため、「Partner」オブジェクトの「CustomerType」フィールドには、そのタイプに一致するすべての Customer オブジェクトの巨大な配列があり、数千の長さになる可能性があります。

要点は、「CustomerType」で再帰するのではなく、「Address」でのみ再帰したいということです。これを設定する方法はありますか?

長文の質問で申し訳ありません。よろしくお願いします。

0 投票する
3 に答える
4805 参照

cakephp - 単一のトランザクションのコミットとロールバックを使用した複数のモデルによるトランザクション管理

私はcakephpが初めてです。Cakephp で、単一のトランザクションで複数のモデルのコミットとロールバックを処理できるかどうかを知りたいです。私はこのようなことをしたい

0 投票する
1 に答える
904 参照

mysql - HABTM リレーションの CakePHP サブクエリ SQL

タグごとに関連商品を提案し、最も一致した順に並べ替えたい。

製品とタグの間の HABTM モデルの関連付け

タグモデルではその逆です。また、結合テーブル名は「products_tags」です。

サンプル用

このサンプルでは、​​優先順位による iPhone の並べ替えに最も関連するものは次のとおりです。

  1. ipad (3 タグで見つかりました)
  2. BB (2 つのタグで見つかりました)
  3. エアカード (一致するのは 1 つだけ)

Model find() を使用して、次のようなサブクエリを取得する Cake の方法:

上記の SQL クエリは、必要なものを正確に返します。しかし、パラメータを CakePHP の AppModel->find() メソッドに解析する方法が見つかりません。

0 投票する
1 に答える
1704 参照

php - CakePHPはsaveAllで3つのモデルを使用します

私は次の状況にあります:

クライアントの詳細を保存するためのアドレスアプリケーションを開発しています。

私は次のdb-structureを持っています:

誰かが新しいクライアントを追加した場合、1つの電子メールと1つの電話番号を持つ彼のプライマリアドレスを保存する必要があります。

次のコードを使用してクライアントのadd-viewでこれを実行し、client-controllerでsaveAll-methodを呼び出すと、これは部分的に非常にうまく機能します。

しかし、このビューでメールアドレスと電話番号を保存する方法がわかりません。AddressEmail.0.emailのように考えましたが、うまくいきませんでした。


とった:

Nikが投稿したソリューションでは正常に機能しているので、$ this-> Client-> Address-> saveAll($ this-> data)と呼んでいますが、add-viewを次のように調整する必要がありました。

Address-ModelからsaveAll()-メソッドを呼び出しているので、ゼロはもう必要ありません!

0 投票する
1 に答える
295 参照

php - CakePHP テーブル結合のヘルプ

CakePHP が初めてで、初めての参加を試みています。users と呼ばれる 1 つのテーブルと、projects と呼ばれる 1 つのテーブルがあります。1 人のユーザーが複数のプロジェクトを持つことができるため、プロジェクトには user_id 列があります。

これがprojects_controllerでの私のアクションです:

SQL ダンプは次のとおりです。

ご覧のとおり、users テーブルから何も選択していないことを除けば、すべて問題ないように見えますが、テーブルに参加しています。

そして、ここに私の見解があります:

私はどこかを台無しにしましたか?ビューは、それを所有するユーザーとともにすべてのプロジェクトを一覧表示しようとします。

どうもありがとう、

ジョンジー

0 投票する
2 に答える
2477 参照

php - CakePHP: hasmany アソシエーションの COUNT 関数

hasmany アソシエーションを介してモデルに参加し、レコードの数を数えようとしています。基本的に、ユーザーとプロジェクトがあります。関連するプロジェクトの数をユーザー インデックス アクションに表示したいと考えています。

そのため、user_id で Project モデルに参加し、counterCache を true に設定しました。問題は、ユーザー インデックス ビューでこれにアクセスするにはどうすればよいかということです。

私はもう試した

誰かが私を助けることができますか?

ジョンジー

0 投票する
1 に答える
1964 参照

php - CakePHP:ビュー内のクエリからデータにアクセスする

hasMany関係を設定しています。ユーザーhasManyプロジェクト。プロファイルビューのユーザーコントローラーで、SQLダンプでそのユーザーに返されるプロジェクトを確認できます。

そのユーザーのプロファイルビューに各プロジェクトを表示したいと思います。そこで、ユーザーとプロジェクトの間に関連付けを設定しました。ユーザーhasManyプロジェクト。関連付けられたプロファイルビューを使用して、ユーザーコントローラーでプロファイルアクションを作成しました。のユーザーの1人のプロファイルビューに移動すると、SQLダンプ内のプロジェクトをクエリしていることがわかります。

これは、正しいユーザーIDを持つSQLダンプです。

このクエリのデータをどのように使用できますか?

プロジェクトモデル

ユーザーモデル

User_Controllerのプロファイルアクション

0 投票する
2 に答える
179 参照

php - コントローラまたはモデルを CakePHP にインポートする方が良いですか?

CakePHP アプリケーションでは、モデルまたはモデル自体にアクセスできるコントローラーをインポートする方が良いですか?