問題タブ [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.
php - CakePHP 共通モデル
同じ Cake ライブラリで 3 ~ 4 個のアプリを実行しています。各アプリには独自のコントローラー、モデル、およびビューがあります。
最近、モデル内のかなりの数のメソッドがプロジェクト間で重複していることがわかりました。アプリ モデル (app_model.php ではない) を取得して、ケーキ ファイル内のモデルを拡張できるかどうか疑問に思っていました。
例えば
それが理にかなっていることを願っています
php - 関連付けられたモデルを見つける方法をモデルに伝える方法は?
最初に、私は MVC フレームワークを初めて使用するので、その分野の知識を前提としないでください。
デザイナー モデルがあり、デザイナー モデルから情報を取得するときに、各デザイナーに関連する製品を取得したいと考えています。
関連付けは単純ではないため、cake が魔法のように関連付けを行うわけではないので、自分で定義する必要があります。私はチュートリアルに従ってきましたが、近いと思いますが、すべてを結び付ける方法がわかりません。
designer_id を適切な場所に挿入すると、関連するすべての製品が選択されるという非常に長いクエリがあります。
製品を取得する方法を認識できるように、このクエリを Designer モデルのどこかに配置する必要があると思います。
これがクエリです。次のように見える文字列の部分は、次のよう{$__cakeID__$}
に置き換える必要がありますdesigner_id
。
また、デザイナーモデルは次のとおりです。
Designer モデルがこのクエリを使用して関連する製品を自動的に検索するようにするには、どうすればよいですか?
php - CakePHPでbeforeValidate()を使用するにはどうすればよいですか?
URLフィールドのあるフォームがあります。このフィールドのデフォルト値はhttp://です。ただし、フィールドは必須ではありません。ユーザーはそれをスキップしてフォームを送信できます。必須ではなく、URLを入力しなかったため、エラーは返されません。しかし、http://のおかげで、今はそうなっています。
beforeValidate()を使用してhttp://かどうかを確認し、URLフィールドをクリアして、エラーメッセージをスキップできると聞きました。
しかし、beforeValidate()の使い方がわかりません。Googleを検索しましたが、実用的な例は見つかりませんでした。beforeValidate()のコードはどこに配置しますか?関数ですか?そこから送信されたフォームデータにアクセスするにはどうすればよいですか?
ありがとう。
php - 標準的な関係のような HABTM エコー値
私はこれに関するポイントを見逃しているかもしれませんが、インデックスで HABTM 値をエコーアウトしようとしていますが、データを取得できないようです。
たとえば、これらの関係を問題なくエコーできます。
Plan モデルの _id 再帰関係からわかるように。
私の質問が明確であることを願っています。これで何をすべきかわからないだけです。私が試した変数の組み合わせに関係なく、それを解決できないようです。
php - CakePHP:ユーザーのプロフィールページを作成する方法
ユーザーのデータを出力するプロファイルページを作成するにはどうすればよいですか?このページは、ログインしたユーザーのみが表示できます。プロファイルページに移動して、自分のユーザー名、パスワード、電子メール、アドレスなどを表示するようなものです。その後、自分で編集する場合があります。もちろん、他のユーザーが編集することはできません。
プロファイルテーブルの必要性と混同していますが、今は必要ないと思いますか?profile.ctpとして作成したページでPHPロジックを使用してデータを入力するだけです。
これは紛らわしいです。私はこのhttp://book.cakephp.org/#!/view/1041/hasOneに従い、usersテーブルにあるいくつかのフィールドとuser_idという外部キーを使用してプロファイルテーブルを作成しました。ユーザーモデルとプロファイルモデルの両方が関係で正しく定義されていることを確認しました。私はこれをプロファイルモデルに持っています:
そしてこれはユーザーモデルで:
プロファイル/インデックスを参照すると、レコードのないフィールド名があります。空のセットです。ユーザーのテーブルからデータを取得することになっていると思いましたか?
既存のユーザーのプロファイルページを作成するための最良の方法は何ですか..そして今後の登録?
php - CakePHP モデルのインデックス配列が必要ですが、for ループ カウンターから生成できません。これが機能するには、モデルのインデックス付き配列が必要です
さまざまな関係タイプで複数のレコードを送信する機能に取り組んでいます。私が直面している主な問題は、配列の形式です。複数のリレーションシップのセットアップで saveAll() を機能させるには、モデルがキーであることがわかるように、配列をこの形式にする必要があります (下の最初の配列)。
私の主な質問は次のとおりです。1)下の2番目の配列の2番目のレイヤーから数値インデックスを取り除くことは可能ですか?
そのように入力フィールドを返しています。接頭辞付きのカウンターを見ることができます (これは、その第 2 レベルで数値インデックスを作成しているものだと思います)。
フィールドに for ループ カウンターを使用しています。したがって、私の質問番号は次のとおりです。この値を Cake の saveAll() で動作するものに変更できますか?
モデルがキーである例 (これは私が必要とする形式です):
複数の入力配列で取得できる唯一の出力 (以下は debug() ダンプ)
私の実際の出力は数値的に索引付けされています:
)
php - 関連モデルを使用した CakePHP 検索条件
異なるが関連するテーブルの検索基準に基づいてアイテムのリストを取得する際に、進行中の問題が発生しています。この種の状況に対処する方法について明確な考えを持っている必要があります。これが私の最も簡単な例です:
エージェンシー モデル (r_num の主キーを持つ referral と呼ばれるテーブルと、agents と呼ばれるテーブルを使用するエージェント モデルを使用する場合、エージェント テーブルにはエージェンシーにリンクする r_num の外部キーが含まれます。エージェンシーは多くのエージェントを持つことができます。
表:紹介
表: エージェント
モデル:
$this->Agency->find('all') を使用して、エージェントの名、エージェントの姓、エージェントの電子メールを含む検索フォームの条件を使用してリストを返すだけです。代理店の会社名と ID のリストが必要ですが、検索基準は代理店に基づいています。これを使用するいくつかの異なるモデルがあるため、これがどのように機能するかについてのドキュメントが必要です。オンラインで見つけたものに基づいて私が試したのは、これが機能する AgencyController ですが、私のより複雑なケースのいくつかでは機能しないハックです:複数の呼び出しを行わずにこれを行う必要があります。これらのクエリでこの手法を使用すると、数分かかります。
php - CakePHPの保存モデルと関連モデル
ユーザーモデルがあります。
次のようなフォームを含むレジスタビューがあります。
フォームを送信すると、次のように保存されます。
これは機能します。
データベースに、外部キーでaddresses
あるフィールドで呼び出されるテーブルを追加しました。user_id
users.id
ユーザーモデルを追加しました。
次のようなフィールドを登録フォームに追加します。
これにより、addressesテーブルに新しいエントリが作成され、新しいユーザーに関連付けられると期待していました。そうではなく、新しいユーザーを作成しますが、アドレステーブルには何も入れません。
保存機能をからsave
に変更してみましたsaveAll
:
今は何も保存されません。
私は何が間違っているのですか?
cakephp - CakePHP で最新のコメントを含む投稿を取得する
次のようにモデルPost
とモデルがComment
関連付けられているとします。
関連する latest を使用find('all')
して every を取得するにはどうすればよいですか?Post
Comment
hasOne
私は関係を次のように定義しようとしPost
ました:
しかし、私が a を行うと、ごとに 1 回、異なるに設定して、複数回Post->find('all')
ごとに返されます。Post
Comment
LatestComment
Comments
php - CakePHP、この(内部)アプリを作成するためにどのように使用する必要がありますか?
私が持っているのは次のdb構造(テーブル)です:
lists[name,id]
list_items[title,list_id,content]
最初のテーブル()を管理するために必要なファイルとコード(MVC)を作成しましたlists
。モデルクラス
にもを追加しました。hasMany
その時点で私は立ち往生しています。
私が必要としているのは、各アイテムを管理するためのソリューションです(基本的なCRUD、複雑な管理は、自分で行う方法を見つける高度なCRUDであると思います)。
具体的に説明します。コンテンツは、それ自体で使用される場所(ただし管理者)がないため、次のようになります。
- そのための完全なMVC構造を作成しますか?
lists
(パッケージに何らかの方法で実装できますか、または実装する必要がありますか?] - そうでない場合、どうすればテーブルを添付できますか?(
use
バージョン2で削除されようとしているため) - 要素(ケーキの概念/コンテキスト)は、そのような状況のビューを作成するための適切な方法になりますか?
任意の洞察をいただければ幸いです。