問題タブ [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、コンテナ可能、グループ化
コンテナブルを使用して、メイン モデルに関連付けられたモデルで group by を使用しようとしているシナリオがあります。
ここに私の出力があります:
SubFirmDetail でグループ化し、subFirmDetailType に応じて最新の SubFirmDetail のみを表示したいと思います。コントローラーで現在使用しているコードは次のとおりです。
list - OrchardCMSでの包含可能なコンテンツのカスタマイズ
私は現在、オーチャードがカスタムコンテンツタイプのリストをどのように処理するかについてもう少し理解しようとしていますが、少し問題が発生しました。
Storyという名前のコンテンツタイプを作成しました。これには次の部分があります。
- 体
- 一般
- 封じ込め可能
- ルート
私はこれらのアイテムを保持するリストを作成しました、そして私がしようとしているのはそのような方法でそれらをスタイルすることだけです:
しかし、私は次の方法を理解できないようです。
- 実際に表示されるタイトルを取得します(現在表示されるのは本文とその他のリンクだけです)
- 「詳細」リンクを削除します(これを実際のタイトルに変更します)
Placement.infoの変更を検討し、各アイテムの「詳細」リンクが追加されている場所を見つけるために全体を調べました。どんな助けでも大歓迎です。
cakephp - CakePHP: Containable の基本
コンテナブルがいかに優れているかについてよく読みました。正直なところ、私はすべてのドキュメントを読んでおり、ユーザーコントローラーで動作していますが、いくつかの点が明確ではありません:
- すべてのアクションで使用する必要がありますか、それとも Index() でのみ使用する必要がありますか?
- すべてのコントローラー index() 関数で定義する必要がありますか、それともユーザーコントローラーで一度で十分ですか
たとえば、Country_ID がユーザーと関連モデルの両方に接続された FK である場合はどうでしょうか? 例えば:
}
国は、ユーザーと会社の両方に接続されています。重複を作成せずにこれを定義する方法は?
どうもありがとう!
cakephp - hasMany レコード数による並べ替え - COUNT(RelatedModel.field)
多くの投票を持つモデル Track があります。Vote モデルには「value」というフィールドがあります。私がやりたいことは、投票の値の合計でトラック レコードを並べ替えることです (つまり、残念ながら counterCache を使用できません)。
もちろん、'order'=>'SUM(Vote.value)'
「unknown column...」というエラーで失敗します。
find('all') ですべてを取得し、後で並べ替えるだけですが、ページネーションも必要です。
私が思いついた最良のアイデアは、すべての投票の合計値を追跡する Track モデルにフィールドを追加することです。counterCache が行うことと似ていますが、さまざまな投票の異なる値を反映します。
これを行う簡単な方法はありますか?
読んでくれてありがとう!
cakephp - CakePHP JSON API 含まれる質問
現在、モデル/関連モデルデータの標準的な取得を行うコントローラー/アクションがあります。私のアクションは現在、ビューに変数を渡して、HTML を介してユーザーに表示する値を選択するだけです。
モバイル デバイスが呼び出しを行ってデータの JSON 形式バージョンを取得する場合に備えて、これらの関数を拡張して再利用したいと考えています。Router:parseExtensions("json") を使用していますが、すべて正常に動作します。
私の主な質問は、データサイズを処理する方法です。現在、User モデルでさえ、非常に多くの関連付けられたモデルと再帰関係を持っています。今のところ、コンテインを使用してビューに渡す前に不要なデータを切り取っていません。b/c ビューは必要な要素を取得し、HTML サイズには影響しません。
しかし、JSON ビューの場合は、フォーマットして全体を返すだけなので、サイズが非常に大きくなります。私の現在の思考プロセスは、JSON の場合に包含可能なものを使用するためにケースを作成する必要があるだけですが、より洗練された解決策があることを望んでいましたか? それとも、これは簡単な方法ですか?
ありがとう!
mysql - 「包含可能な」状態でサブクエリを使用できますか?
私のCakePHPには、ModelBがたくさんあるModelAがあります。ModelB には int 値 Q があります。
ModelA にクエリを実行し、containable を使用して、Q の最大値を持つ ModelB のみが記録されるようにすることはできますか?
私はこれを試しました:
しかし、CakePHP がその等値演算子の右側をフィールドとして解釈し (少なくとも私はそれが理由だと思います)、ドットを入れるため、MySQL エラーをスローします。
これを行う方法はありますか?$query()
可能であれば、モードにドロップダウンする必要はありません。
編集OK、api55が提案したページのアドバイスに従おうとした後、私はこのコードを持っています:
しかし、実行すると、7 つの通知/警告が表示されます。最初の 6 つは、文字列の代わりに渡されるオブジェクトに関するものです。
preg_match() は、パラメーター 2 が文字列であると想定し、オブジェクトを指定します
そしてこれに関する6つのバリエーション:
クラス stdClass のオブジェクトから文字列への変換
最後はあまり明確ではありません:
モデル「トーナメント」はモデル「」に関連付けられていません
私はとてつもなく愚かだと思いますが、そこまでです。
cakephp - CakePHP の包含可能およびページネーション - 深い関連付けが表示されない
ページ分割されたクエリで含まれるものを使用しようとしています。コードは以下のとおりです。
直接的な関連付け (Vote と Artist) は取り上げられますが、Image と Genre は取り上げられません。生成される SQL は次のとおりです。
Cake は、より深い関連性を認識していません。これは Containable + paginate の制限ですか、それとも何か不足していますか?
ありがとう!
cakephp - 含まれるモデルの結果のフィルタリング
次のコード行を使用して、特定の(無関係な)条件を持つすべての投稿をタグ「who」でフィルタリングしようとしています
$com= $this->Post->find('all', array('conditions' => $conditions, 'contain' => 'Tag.tag="who"'));
ただし、結果がタグ付きの投稿だけになるのではなく、タグ「who」を持たない投稿の空のタグ配列を持つすべての投稿を取得します。
私の質問が以前に出てきたことは知っていますが、投稿された解決策は私のコードでは機能しませんでした。ここのコードを自分のものに合わせてみました: http://web-development-blog.co.uk/2010/09/14/cakephp-habtm-find-with-conditions-and-containable-behavior/、しかし私はon 句に "Tag.post_id" が見つからないという SQL エラーが発生します。
助けてください。
選択したリンクからコードを実装しようとしたときのエラー メッセージ:
これはこれを使用することによって引き起こされます:
cakephp - CakePHP Containable エラー
それに応じてコンテンツを取得するためにfindステートメントを実行しようとしています
PHP
エラーが発生します:
SQL エラー: 1054: 不明な列 'VisitorDetails.contain' が 'field list' にあります
訪問者の詳細都市情報を取得したい
php - CakePHP Containable は、含まれているモデルで他の動作のコールバックを起動しませんか?
誰もそれで問題を抱えているようには見えないので、私が間違っているか、誰も試したことがない:
多くの「InfocenterArticle」を持つモデル「Infocenter」があります。関連するものを含むデータを取得するために、両方に Containable 動作を追加しました。
これは、自分で実装した「HasImageAttachment」動作を添付するまではうまくいきました。問題は、含まれているモデルで私の動作のコールバックが呼び出されないことです。
私のモデル:
私のコントローラーでは、次のように呼び出します。
また、HasImageAttachmentBehavior::setup() メソッドが呼び出されているのに、HasImageAttachmentBehavior::afterFind() (および beforeFind()) が呼び出されていないことがわかります。ただし、Infocenter::afterFind() が呼び出され、これにより、いくつかの汚いハッキングが可能になりました。今のところは十分ですが、私はそれが嫌いです。
私は何を間違っていますか?
編集: RichardAtHome のコメントへの返信の追加情報。
1) 私の動作は、Containable が添付されていないモデルで機能します。
2) 単純な die(); を置くことで afterFind() が呼び出されないようにしました。最初の行で。スクリプトは死にません()。
3) 署名は問題ないはずです。再確認しました。
4) CakePHP 1.3 を使用しています。
ご協力いただきありがとうございます。