問題タブ [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.

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

cakephp - CakePHP:ContainableBehaviorクエリ構造/結合

私のアプリケーションのデータモデル

  • グループhasManyユーザー
  • ユーザーbelongsToGroup
  • ユーザーhasManyPunch
  • パンチbelongsToユーザー
  • パンチはPayPeriodに属します
  • PayPeriodには多くのパンチがあります

電話を探す

クエリデバッグ

アプリケーションが数千のパンチを持つ数百のユーザーに拡張されると、これらのクエリは非常に非効率になる可能性があります。Containableが次のクエリを実行することを期待します。

私が好むクエリ

これを最適化する方法はありますか?options配列のjoin属性は無視されているように見え、Containableを使用せずに手動で結合を実行すると、階層的ではない結果が返されます。

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

cakephp-2.0 - Cakephp 2 Containable が適切にフィルタリングされない

私が何か悪いことをしているのか、それともこれが実際に Cake に期待されている動作なのかはわかりません。

以下は私のコードです:

そして、これは私が得るものです:

配列でチケット 4 を取得するべきではありません。代わりに、provider_id が一致しないため、空の TicketsType 配列を取得します。これは予想通りの結果ですか?

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

cakephp - Cakephp ネストされた内容

私はこの構造とテーブルを持つツリーモデルを持っています:

SocialPost: id、file_id

ファイル: id、タイトル


すべてのツリー モデル actAs 包含可能

このコードは SocialPostsController でうまく機能します:

出力: http://pastie.org/private/9ixxufncwlr3tofgp8ozw

ただし、RatesController のこのコードは、すべての SocialPost に対して同じファイルを返します。

出力: http://pastie.org/private/lbqryo1gxgvxjb5omfwrw

ここで何が問題なのですか?

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

php - Containable の使用時に CakePHP プラグイン モデルが関連付けられない

Fooコンポーネントがあり、コントローラーがなく、いくつかの結合されたモデルを持つという名前の CakePHP プラグインがあります。次のように構成されています。

標準 (非プラグイン) コードに接続するために、プラグイン モデルの 1 つが条件付きで と呼ばれる標準モデルに関連付けられBarます。これが問題に関連しているとは思いませんが、徹底したいと思います。

では、いくつかの層の深さFooControllerを利用します。Containable

これにより、次のようなエラーが発生します。

したがって、私のプラグイン コントローラーには、プラグイン モデルを含める必要があります。モデルの前に Foo (例​​: Foo.FooModel1)を付けてみましContainableたが、Foo という名前のモデルを取得しようとしているようです。プラグイン モデルの配列で と の両方を$hasAndBelongsToMany試しましたが、どちらも機能しません。この関連付けを正しく設定するにはどうすればよいですか?'Model1' => array()'Foo.Model1' => array()

補足: モデルをプラグインから標準/Model/ディレクトリに移動すると、すべて正常に動作します。この問題は、コード自体のロジックではなく、誤った関連付けに起因しているようです。

助けてくれてありがとう。

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

cakephp - なぜCakePHPはSQL結合を使用しないのですか

私はCakePHPにかなり慣れていないので、良い解決策を見つけることができないような問題に遭遇しました。私のアプリケーションには次の関連付けがあります。

  • メンバーhasMany投票
  • ロールhasMany投票
  • 投票所属メンバー、ロール

メンバーが投じたすべての投票と、各投票に関連付けられたロールを取得したいと思います。次のコードは完璧な結果を生成します。

残念ながら、このコードも非常に非効率的です。SELECT * FROM votes JOIN rolls ON votes.roll_id = rolls.id WHERE votes.member_id = 100Cakeは、のようなことをする代わりに、次のことを行います。

  1. SELECT * FROM votes WHERE member_id = 100
  2. SELECT * FROM rolls WHERE roll_id = 1
  3. SELECT * FROM rolls WHERE roll_id = 2
  4. SELECT * FROM rolls WHERE roll_id = 3
  5. SELECT * FROM rolls WHERE roll_id = 4
  6. など-500以上のロールが一致する場合の大きな問題!

read()メソッドを使用しながら、これをより効率的にするにはどうすればよいですか?

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

cakephp - CakePHP の包含可能な注文条件が機能しない

非常に単純な注文クエリで問題が発生しています。モデルと HABTM 関係を持つPostモデルTagがあり、特定のタグが割り当てられたすべての投稿のリストを、投稿が作成された日付順に並べ替えて返そうとしています。

これは投稿のリストを返しますが、日付順ではありません。

デバッグをオンにすると、次のクエリが使用されているように見えます。

投稿モデルのコード:

タグ モデルのコード:

この問題に関するヘルプをいただければ幸いです - 私は CakePHP 2.1 を使用しています。違いがあれば。

0 投票する
4 に答える
879 参照

cakephp - CakePHP Containableエラー:2レベルの関連付けが機能しない

次のクエリを実行します。

コメント...

ユーザー...

と作者...

これは次のようなものを返します(jsonで)...

...ユーザーに添付されていると、指定したフィールドを持つ作成者が表示されることを期待しています。著者が表示されない理由を知っていますか?コードに2つのレベルの再帰性を備えた他のコンテインメントを実行しましたが、すべて期待どおりに機能します。

あなたの助けと注意をありがとう!

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

cakephp - 包含可能なネストされたモデル

ContainableCakePHP の動作を使用してロードしようとしているネストされたモデルがいくつかあります。そのほとんどは正常に動作します。

ただし、hasMany関係を持つ 1 つのモデルは 1 つのオブジェクトのみを返します。

一度だけロードされるオブジェクトはリレーションNewspicture hasMany NewspicturesProduct です。クエリをログに記録すると、次のようになります。

これにより、3つの結果が得られphpMyAdminます。しかし、CakePHP のデバッグでは 1 つだけ:

オブジェクトを取得するNewspicturesのではなく、オブジェクトを取得すると、News3 つのオブジェクトすべてが取得されNewspicturesProductます。

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

cakephp - Cakephpは複数のモデルですべてのクエリを検索します

MenuItem 6に属し、Articlecontent_typeが'blog'であるすべての記事を取得するには、次のことを試みます。ですべての記事を検索しますcontent_type='blog'。ただし、Menuitem 7に属している場合にのみ、Articleを返したいのですが、7でない場合はMenuItemに空の値を返します。

MenuItem 7からの記事のみをロードするようにするにはどうすればよいですか?

MenuItemはArticleとHABTMの関係にあります

コード:

配列:

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

php - コンテナ可能なCakePHP 2.2.2プラグインのページネーション

現在、$this->paginate() で包含可能を使用しようとしていますが、結果セットで余分なテーブルを取得できません。結果セットに MediaItem と MediaCollectionItem があることを期待しています。

以下は、インデックスアクション用のコントローラーコードです

以下は、すべての関係を持つ MediaItem モデルです

以下は、すべての関係を持つ MediaCollectionItem モデルです

プラグイン AppModel

現在の実績例

コントローラー内の MediaItem モデルのデバッグ