問題タブ [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 投票する
1 に答える
1496 参照

php - 「プロファイルの編集」アクションCakePHP2.0を作成しますか?

CakePHP2.0.2に問題があります。「プロファイルの編集」アクションを作成したいと思います。これが私のコントローラーのアクションです:

そして、これが私の見解です:

しかし、フォームを送信しても何も起こらないようです。成功メッセージが表示されず、エラーメッセージも表示されません。を補完するためにelseステートメントを配置するとif ($this->User->save($this->request->data))、そのコードブロックが実行され、Userモデルデータが保存されないことを示します。

どこが間違っているのですか?

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

cakephp - CakePHPで簡単な検索操作を実行する

CakePHPを使用して、レコードの基本的なリストを取得する必要があります。結合や特別なCakePHP結果フォーマットはなく、次のデータフォーマットのレコードの基本配列のみです。

CakeModelsを使用してこれを行う最も簡単な方法は何ですか?

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

php - リンクされたモデルからフィールドを取得する方法

次の3つのデータベーステーブルがあります。

私のモデルでは、アーティストの商品と一緒にProduct商品を返品するメソッドを作成するにはどうすればよいですか?titlefirst_name

次のモデルの関連付けを設定しました。

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

php - モデルをリンクする

データベースには次の3つのテーブルがあります。

各アーティストは多くの製品を持つことができます。

各アーティストには1人しかいません。

各製品にはアーティストが1人しかいません。

これらの3つのテーブルのモデル間に設定する正しい関連付けは何ですか?

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

cakephp - CakePHP のコンテナ化可能な動作が期待どおりに機能しない

次のデータベース テーブルがあります。

次のモデルの関連付け:

以下を使用して、3 つのモデルのそれぞれが Containable 動作を使用するように設定しました。

次を使用して、アーティストの名前とともに製品の詳細を取得すると:

警告が表示されます:

そして、私は製品の詳細のみを取得します。つまり、アーティストの名前はありません。なぜこうなった?

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

php - Containableを使用した深い関連を持つFind()条件

私は次の3つのモデルを持っていProductますOrder、、OrderDetail

Product次の関連付けがあります。

Order次の関連付けがあります。

OrderDetail次の関連付けがあります。

私はこの動作を使用しており、製品を使用しContainableたいと考えています。find()

Orderfind()呼び出しの条件部分でモデルのフィールドを使用するにはどうすればよいですか?

Product私のモデルではこのようなもの:

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

php - MVC モデル、それらは何のためにあるのですか?

私が MVC を理解する時が来たので、それが私がやろうとしていることです。そして、モデルが何をすべきかを理解するのに苦労しています。ウィキペディアによると、モデル:

モデルは、アプリケーション ドメインの動作とデータを管理し、その状態に関する情報の要求に (通常はビューから) 応答し、状態を変更する命令 (通常はコントローラーから) に応答します。イベント駆動型システムでは、情報が変更されたときにモデルがオブザーバー (通常はビュー) に通知し、オブザーバーが反応できるようにします。

そして、CakePHP では、次の非常に単純な方法でモデルをセットアップすることになっています。

たとえば、データベースの最新の 10 件の投稿が必要な場合は、次のようなコントローラーを作成します。

そして、この男は私のビューに呼び出された変数を渡し、postsそれに応じてそれをレンダリングします。問題は、私のモデルは他に何もするべきではないということです。なぜなら、これと同じくらい単純な場合、カスタム モデルの意味がまったくないからです。つまり、モデル クラスへの単なる空の拡張です。

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

validation - ビュー内の別のモデルからのフォーム

だから私はいくつかのコメントを追加してブログチュートリアルを拡張しようとしています:

「投稿ビュー」と同じビューにコメント追加フォームを表示したい。物事は私がこのアプローチを取得するための最良の方法を知らないということです。私は3つの方法について考えました:

  • データを処理するためにCommentsControllerで関数を作成します。
  • データを処理するためにPostControllerで関数を作成します。
  • 投稿ビューを処理するのと同じ関数でデータを処理します。

最初の2つの「ソリューション」の主な問題は、無効化されたフィールドをセッション変数に保存してから、beforeFilterコールバックで変数を解析するという厄介なハッキングを行わない限り、検証エラーがフォームに表示されないことです。 :

私が基本的に行うことは、無効化されたフィールドを実際のビューに適合させ、正しく表示できるようにすることです。これは本当にうまくいきますが、私にはとても醜いようです。最善のアプローチは何でしょうか?

別の関連する質問:コントローラーはビューを反映する必要がありますか?つまり、その例では、コメントモデルだけを持ち、コメントを追加するためのフォームであるコントローラー内のすべてのデータを処理することを考えました(Postコントローラー内にある場合でも)。

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

cakephp - ファットモデル全体で複数の条件でコードDRYを維持するにはどうすればよいですか?

私はCakePHPを使用していますが、この問題はすべてのMVCフレームワークに当てはまると思います。

次のことを考慮してください。

  • モデルA

    /li>
  • モデルB

    /li>
  • モデルC(AとBの間でモデルを結合)

    /li>

結合モデルで3つの別々のメソッドを作成することなく、この状況を処理するための確立された方法はありますか?ここでデコレータパターンを適用する必要があるように感じますが、その方法がわかりません。

たぶん私は問題を間違って見ているだけです。

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

php - CakePHP Containable: リレーションのロードが多すぎますか?

私は常に、追加モデルのロードを適切に処理すると考えていたので、cakephp の包含可能な要素の大ファンです。しかし、ここ数日でさらに深く掘り下げたところ、実際にはメモリの問題があることがわかりました。

次のモデル構造を考えてください。

  • プロジェクトには多くの壁があります
  • プロジェクトには多くの参加者がいます
  • 壁にはたくさんのポストがあります
  • 投稿には多くのコメントがあります
  • 参加者の投稿数が多い
  • 参加者のコメントが多い
  • 参加者はユーザーに属します
  • 参加者はプロジェクトに所属しています

およびその逆

  • 投稿は参加者に属します
  • 投稿はウォールに属します
  • コメントは参加者のものです
  • コメントは投稿に属します
  • ユーザーには多くの参加者がいます

wall-Controller には、次の find-Statement があります。

私は、cakephp がすべての投稿を見つけて、対応する参加者オブジェクトのみを含めることを期待しています。しかし、私が得るのは、すべての投稿 (正しい) とその参加者 (正しい) だけでなく、対応する壁 (正しくない) と対応するコメント (利用可能な場合) (正しくない) のリストです。したがって、パフォーマンスの観点からは、オブジェクトが多すぎるため、「致命的なエラー - メモリの過負荷」が発生する可能性があります。

そして、理論的に非常にセクシーで興味深い部分については、次のとおりです。

Post とParticipant.Userオブジェクトのみに関心があるため、contain-array を Participant.User に変更します。しかし、ここでも、User オブジェクトだけでなく、Participant に関連する他のすべてのオブジェクト (プロジェクト、投稿、コメントなど) も取得しており、オブジェクト ツリーは以前よりもはるかに大きくなっています。

だから、これを実装する正しい方法は何だろうと思っていましたか?「結合」オプションを明示的に設定する必要がありますか、それともフィールド オプションを (ルートまたは含むオプションで) 設定する必要がありますか?

オーストリアからのご挨拶。