問題タブ [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 に答える
586 参照

php - Yii1 CGridView(Yii-Booster): TbGridView(CGridViewに基づく)でフィルタキー(filterVal)を変更するには?

私は yii-booster(4.0.1) TbGridView(CGridView を拡張) を使用しており、フィルター関数の _REQUEST($_POST, $_GET) でフィルター変数名を変更する必要があります。私のグリッドにはフィルター機能があり、フィルター入力にいくつかの単語を入力した後にEnterキーを押すと、サーバーにajaxリクエストが送信されます。$_REQUEST のこのリクエストでは、次のものがあります。

私の質問は、CGridView によって作成されたリクエストでwsi_it_model_Assetを変更する方法です。dataProvider を作成しているときにCActiveDataProviderのパラメーターを介して行う必要があることはわかっていますが、それが見つかりません。

前もって感謝します。

UPDATE Jan 24 Jan 別のプロジェクトからコードを
見つけました。keysortpagination

したがって、ページネーションの場合、クライアントからサーバーに投稿されるリクエストは次のようになります。

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

php - Yii2-activedataprovider がデータをフェッチしない

いくつか$query->andFilterWhere(...)を使用してクエリを作成します。

そして、最終的なクエリを見ることができますecho $query->createCommand()->rawSql;

最終クエリをコピーして phpmyadmin に貼り付けると、2 つのレコードがフェッチされましたが、ActiveDataProvider に結果が見つかりませんでした。

私がそれを見逃しているポイントはどこですか?!

============================================

これは私のコードです:

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

php - YII の CDbCriteria で結合属性を取得するには?

company モデルでは、モデル user と business_unit を結合します。

できます。しかし、私は会社の属性しか取得しません。属性とともに属性を取得する方法business_unitと属性userscompany

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

php - CActiveDataProvider は選択された列を提供しません

正常に動作し、選択したすべての列を取得します。しかし、CActiveDataProvider に渡すと、this属性のみが取得されます。

すべての列を選択するにはどうすればよいですか?

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

activerecord - 熱心な読み込みを行っている yii2 joinWith() で WHERE を使用する方法

私はテーブルを持っています:documentdocument_content. Oneドキュメントにはmanyコンテンツを含めることができます。

モデル関係を使用して、テーブルjoinWith()からデータを取得するメソッドを使用しています。document_contentdocument

実行されるクエリは次のとおりです。

SELECT document.* FROM document INNER JOIN document_content ON document.id = document_content.document_id WHERE (lang='1') ORDER BY id DESC LIMIT 10

SELECT * FROM document_content WHERE document_id IN (665566, 665034, 664961, 664918, 664910, 664898, 664896, 664893, 664882, 664880)

この 2 番目のクエリには問題があります。最初の WHERE 句からこの WHERE 句を含めたい:WHERE (lang='1')

ですから、yii に次のクエリを生成してもらいたいのです。

SELECT * FROM document_content WHERE (lang='1') AND document_id IN (665566, 665034, 664961, 664918, 664910, 664898, 664896, 664893, 664882, 664880)

なんとかこれを達成できましたが、コードの繰り返しがあり、好きではありません。これを行うには、もっと良い方法があるはずです。これは機能する私のコードですが、それほど良くないと思います:

ご覧のとおりparams['lang']、2 か所でチェックしています。私の関係方法とbuildDocumentContentQuery()方法で。そのため、2 つの場所で同じコードを繰り返していますが、テストしたいのは lang param だけではなく、10 以上ある可能性があります。

基本的に、yii2joinWith()メソッドを介してパラメーターを送信できなかったため、これをすべて実行する必要がありました。WHEREの熱心な読み込みによって生成されたクエリに追加する最良の方法がわかりませんjoinWith()。何とか動かせたのですが、これは汚いと思います。

この問題に対するより良い/よりクリーンな解決策について誰か考えがありますか?

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

gridview - Yii2: Index と URL の複数の Model/Controller の変更

私のインデックスでは、関係によってリンクされていない 2 つの異なるテーブルの結果を表示する必要があります。私は2つの異なる検索モデルを使用してそれを行いました

したがって、2 つのタブがあり、それぞれが 1 つのテーブルの結果を正しく表示する 2 つの Gridview があります。

モジュールを使用しています。したがって、私のパスはmodule/book/views/book-oldおよびmodule/book/views/book-new です。これらのフォルダー内には、ビューの php ファイルがあります。

ビュー-old.php

ビュー-new.php

問題は、ActionColumn で使用されるボタンとコントローラーにあります。1つの「タブ」が1つのコントローラーを使用し(異なるリンクも)、もう1つのコントローラーが別のコントローラーを使用する(常に異なるリンク)必要があります。

私が試したActionColumnの中で

URL のパスの先頭に「boookold」を追加します。しかし、それは私に Page 404 not found を与えました。私も試してみました

しかし、Yii::$app->controller->id は同じデフォルト コントローラを返します。どうすればいいですか?

簡潔にするために、URL の最後の部分 (view-old と view-new) を変更し、コントローラーを変更する必要があります。私のコントローラーは次のようなものです:

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

php - イー。CActiveDataProvider と多くの関係があります

ドキュメントとレポートの 2 つのモデルがあります。1 つのドキュメントに 0 個のレポートまたは複数のレポートを含めることができます。1 つのレポートは 0 または 1 つのドキュメントに属します。

フィールド document_id はヌルにすることができます。

CGridView ウィジェットを使用してテーブルを表示したいと思います。テーブルには、列「ドキュメント名」と「レポート名」が含まれます。ドキュメントにレポートがない場合は、「ドキュメント名」のみを入力し、「レポート名」は空白のままにします。ドキュメントに 1 つ以上のレポートがある場合、レポートごとに 1 つの行を配置します。例:

この方法で CActiveDataProvider を作成しようとしたとき:

ドキュメントに複数のレポートがある場合でも、ドキュメントごとに 1 行を取得します。

私がこのようにすると:

レポートが 0 件のドキュメントがありません。

これどうやってするの?