問題タブ [cactivedataprovider]

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 に答える
345 参照

php - リレーションを持つ Yii CSqlDataProvider

結合と条件を含む複雑なクエリがあり
、CSqlDataProvider でデータを取得していますが、
リレーショナル テーブル レコードも結合する必要があります。

たとえば、テーブル A ( products) とテーブル B ( product_modifications)
があるとします。製品とその変更を一覧表示する必要があります。

テーブルAからデータを取得し、テーブルA
の各レコードに対してテーブルBからいくつかのレコードを取得する必要があります.クエリはテーブルBから配列を取得する必要があります.

基本コード:

私の質問

テーブル B ( ) のレコードを結合するにはどうすればよいproduct_modificationsですか? そのCActiveDataProviderように:

しかし、私はこれを行う方法がわかりませんCSqlDataProvider

UPD : クエリを対応する CActiveDataProvider クエリに変換することで解決

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

yii - Modelname とその動作には、「getData」という名前のメソッドまたはクロージャーがありません。イイで

どこが間違っているのかわからないので、遊んでみましたが、何も達成しませんでした。

cListviewを使ってデータを表示したいのですが、できません モデルに関数があります

モデル

コントローラ

見る

psearchindex

_psearchindex

私が実行すると、次のようになります

エラー

Modelname とその動作には、「getData」という名前のメソッドまたはクロージャーがありません。

これは私の最初の試みですが、何が悪いのか理解できません

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

activerecord - CdbCriteria BELONG_TO

私はこの関係を持つモデル(Inmueble )を持っています:

この例では:

モデル Inmuebleの属性名に条件でアクセスします。

関係の属性にアクセスする CdbCriteria を実行するにはどうすればよいですか (たとえば、 where direccion.city = 'something' ?

ありがとう!

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

php - CActiveDataProvider を使用して 2 つのテーブルを結合する

CActiveDataProvider を使用して 2 つのテーブルを結合する際に問題が発生しました

テーブルは次のとおりです: question(id,description) 、 questionInFeedback(feedbackId,questionId)

と関係:

フィードバック=>

'questionInFeedbacks' => array(self::HAS_MANY,'QuestionInFeedback','feedbackId'),

質問=>

questionInFeedback=>

SQLを使用できる場合は、使用します

フィードバックに関連する質問をフィードバック ビューに表示するには、これらの質問 ID が必要です。

保護された/コントローラー/フィードバックコントローラー:

助けてくれてありがとう :)

EDIT:Yiiは私に次のエラーを与えています。

「foreach() に無効な引数が指定されました」、826 行目が強調表示されます。

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

php - yii CActiveDataProvider 複数テーブル結合

私は現在、雑誌サイトで作業していますが、Yii が CActiveDataProvider を使用してすべてのデータを返すようにするのに問題があります。SQL クエリは、SQL を介して実行すると正常に実行され、Yii で実行してもエラーは発生しません。ログを確認すると、Yii を介したときに SQL ステートメント全体が実行されています。

必要に応じて、記事モデルの関係を次に示します。

ここにprint_rの出力があります:

ご覧のとおり、クエリのすべてが返されますが、作成者は空白のままで、その理由がわかりません。記事モデルのリレーションを HAS_ONE に変更するまでは、画像オブジェクトが同じことをしていることに気付きました。各記事​​には関連付けられた画像が 1 つしかないため、これは問題ありません。その問題の原因となるような、書かれている方法に何か問題があると思う人はいますか? 事前にすべての回答に感謝します。

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

php - Yii CActiveDataProvider with() と結合

CGridView の関連オブジェクトごとに個別の行が必要です。

ModelB には modelAId があるため、HAS_MANY 関係です。

次のクエリは、取得しようとしているものを返します。

ここでは、対応する modelB 行ごとに個別の行を取得しています。modelA からのレコードが重複している可能性があります。

ただし、次のプロバイダーは期待されるレコードを返しません。CActiveDataProvider でこれを利用するにはどうすればよいですか

join "join" => "join modelB b on b.modelAId = t.id" を追加して with() を削除すると正しいレコードが返されますが、with() を含めると modelA レコードのみが返されます。

ModelB 関係の個別の行を含む ModelA からデータを取得する正しい方法は何ですか?