問題タブ [containable]
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.
cakephp - CakePHP:ContainableBehaviorクエリ構造/結合
私のアプリケーションのデータモデル
- グループhasManyユーザー
- ユーザーbelongsToGroup
- ユーザーhasManyPunch
- パンチbelongsToユーザー
- パンチはPayPeriodに属します
- PayPeriodには多くのパンチがあります
電話を探す
クエリデバッグ
アプリケーションが数千のパンチを持つ数百のユーザーに拡張されると、これらのクエリは非常に非効率になる可能性があります。Containableが次のクエリを実行することを期待します。
私が好むクエリ
これを最適化する方法はありますか?options配列のjoin属性は無視されているように見え、Containableを使用せずに手動で結合を実行すると、階層的ではない結果が返されます。
cakephp-2.0 - Cakephp 2 Containable が適切にフィルタリングされない
私が何か悪いことをしているのか、それともこれが実際に Cake に期待されている動作なのかはわかりません。
以下は私のコードです:
そして、これは私が得るものです:
配列でチケット 4 を取得するべきではありません。代わりに、provider_id が一致しないため、空の TicketsType 配列を取得します。これは予想通りの結果ですか?
cakephp - Cakephp ネストされた内容
私はこの構造とテーブルを持つツリーモデルを持っています:
SocialPost: id、file_id
ファイル: id、タイトル
すべてのツリー モデル actAs 包含可能
このコードは SocialPostsController でうまく機能します:
出力: http://pastie.org/private/9ixxufncwlr3tofgp8ozw
ただし、RatesController のこのコードは、すべての SocialPost に対して同じファイルを返します。
出力: http://pastie.org/private/lbqryo1gxgvxjb5omfwrw
ここで何が問題なのですか?
php - Containable の使用時に CakePHP プラグイン モデルが関連付けられない
Foo
コンポーネントがあり、コントローラーがなく、いくつかの結合されたモデルを持つという名前の CakePHP プラグインがあります。次のように構成されています。
標準 (非プラグイン) コードに接続するために、プラグイン モデルの 1 つが条件付きで と呼ばれる標準モデルに関連付けられBar
ます。これが問題に関連しているとは思いませんが、徹底したいと思います。
では、いくつかの層の深さFooController
を利用します。Containable
これにより、次のようなエラーが発生します。
したがって、私のプラグイン コントローラーには、プラグイン モデルを含める必要があります。モデルの前に Foo (例: Foo.FooModel1
)を付けてみましContainable
たが、Foo という名前のモデルを取得しようとしているようです。プラグイン モデルの配列で と の両方を$hasAndBelongsToMany
試しましたが、どちらも機能しません。この関連付けを正しく設定するにはどうすればよいですか?'Model1' => array()
'Foo.Model1' => array()
補足: モデルをプラグインから標準/Model/
ディレクトリに移動すると、すべて正常に動作します。この問題は、コード自体のロジックではなく、誤った関連付けに起因しているようです。
助けてくれてありがとう。
cakephp - なぜCakePHPはSQL結合を使用しないのですか
私はCakePHPにかなり慣れていないので、良い解決策を見つけることができないような問題に遭遇しました。私のアプリケーションには次の関連付けがあります。
- メンバーhasMany投票
- ロールhasMany投票
- 投票所属メンバー、ロール
メンバーが投じたすべての投票と、各投票に関連付けられたロールを取得したいと思います。次のコードは完璧な結果を生成します。
残念ながら、このコードも非常に非効率的です。SELECT * FROM votes JOIN rolls ON votes.roll_id = rolls.id WHERE votes.member_id = 100
Cakeは、のようなことをする代わりに、次のことを行います。
SELECT * FROM votes WHERE member_id = 100
SELECT * FROM rolls WHERE roll_id = 1
SELECT * FROM rolls WHERE roll_id = 2
SELECT * FROM rolls WHERE roll_id = 3
SELECT * FROM rolls WHERE roll_id = 4
- など-500以上のロールが一致する場合の大きな問題!
read()メソッドを使用しながら、これをより効率的にするにはどうすればよいですか?
cakephp - CakePHP の包含可能な注文条件が機能しない
非常に単純な注文クエリで問題が発生しています。モデルと HABTM 関係を持つPost
モデルTag
があり、特定のタグが割り当てられたすべての投稿のリストを、投稿が作成された日付順に並べ替えて返そうとしています。
これは投稿のリストを返しますが、日付順ではありません。
デバッグをオンにすると、次のクエリが使用されているように見えます。
投稿モデルのコード:
タグ モデルのコード:
この問題に関するヘルプをいただければ幸いです - 私は CakePHP 2.1 を使用しています。違いがあれば。
cakephp - CakePHP Containableエラー:2レベルの関連付けが機能しない
次のクエリを実行します。
コメント...
ユーザー...
と作者...
これは次のようなものを返します(jsonで)...
...ユーザーに添付されていると、指定したフィールドを持つ作成者が表示されることを期待しています。著者が表示されない理由を知っていますか?コードに2つのレベルの再帰性を備えた他のコンテインメントを実行しましたが、すべて期待どおりに機能します。
あなたの助けと注意をありがとう!
cakephp - 包含可能なネストされたモデル
Containable
CakePHP の動作を使用してロードしようとしているネストされたモデルがいくつかあります。そのほとんどは正常に動作します。
ただし、hasMany
関係を持つ 1 つのモデルは 1 つのオブジェクトのみを返します。
一度だけロードされるオブジェクトはリレーションNewspicture hasMany NewspicturesProduct
です。クエリをログに記録すると、次のようになります。
これにより、3つの結果が得られphpMyAdmin
ます。しかし、CakePHP のデバッグでは 1 つだけ:
オブジェクトを取得するNewspictures
のではなく、オブジェクトを取得すると、News
3 つのオブジェクトすべてが取得されNewspicturesProduct
ます。
cakephp - Cakephpは複数のモデルですべてのクエリを検索します
MenuItem 6に属し、Articlecontent_typeが'blog'であるすべての記事を取得するには、次のことを試みます。ですべての記事を検索しますcontent_type='blog'
。ただし、Menuitem 7に属している場合にのみ、Articleを返したいのですが、7でない場合はMenuItemに空の値を返します。
MenuItem 7からの記事のみをロードするようにするにはどうすればよいですか?
MenuItemはArticleとHABTMの関係にあります
コード:
配列:
php - コンテナ可能なCakePHP 2.2.2プラグインのページネーション
現在、$this->paginate() で包含可能を使用しようとしていますが、結果セットで余分なテーブルを取得できません。結果セットに MediaItem と MediaCollectionItem があることを期待しています。
以下は、インデックスアクション用のコントローラーコードです
以下は、すべての関係を持つ MediaItem モデルです
以下は、すべての関係を持つ MediaCollectionItem モデルです
プラグイン AppModel
現在の実績例
コントローラー内の MediaItem モデルのデバッグ