問題タブ [cgridview]

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

php - CArrayDataProvider からカスタム列を使用して CGridView を作成するにはどうすればよいですか?

このようなモデルの配列があります。モデルはベース Yii モデル クラス ( BazClass) の拡張であるため、これはカスタム ソリューションですが、なぜ機能しないのかわかりません。

そうすることで、これをデータプロバイダーにしました。

そして、そのようにビューにレンダリングしてみてください。基本的に、「名前」という名前の列を使用して、名前のリストを表示しようとしています。

CGridViewドキュメントの例では、それが可能であるように見えますが、私が得るエラーは次のとおりです。

もちろん、値を指定ましたが、null のようです。私も試し$data['NAME']ました(モデルが返されないことをどこかで読んだためCArrayDataProvider)が、それでもnullに評価されます。

$dataProvider->getData()また、渡したのと同じリストを返すことも確認しました。

何を与える?

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

yii - オブジェクトへのカウント変数のアタッチ

CGridView で各ユーザーの投稿数を表示する際に助けが必要です。

例: User および Post モデルがあります。$user->posts を介してユーザーの投稿にアクセスできます $user->num_posts を持つために追加できるものはありますか

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

jquery - ドロップダウン リストの変更時のステータスの一括更新

一括ステータス アップロード用のドロップダウン リストがあります

上記のajaxオプションで入力チェックボックスのすべてのチェックされた値の値を取得するのに苦労しています。これは次のようなものです:

私は firebug の投稿を調べましたが、autoId は空で、updateStatus は正常に動作しています。autoId 値を配列としてアクションに送信し、配列をループできるようにします。

dropDownListのajaxデータオプションでautoIdチェック値を配列として渡すにはどうすればよいですか?

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

php - 複数のモデルを使用している場合、グリッドビューで検索が機能しません yii

要素を検索するために、1 つの CGridView インターフェイスで 2 つの関連モデルにアクセスしようとしています。しかし、2 番目のテーブルを最初のテーブルに結合するとすぐに、検索が機能しなくなり、何もフィルタリングされません (グリッドは変更されません)。多くのリンクを参照しましたが、この問題を自分で解決できませんでした。

テーブルは - UserMaster (user_id、name、status、...) CustomerMaster (customer_id、user_id、account_number、...)

上記の 2 つのモデルを結合することで、期待どおりにグリッド ビューを取得できますが、すべてのフィールドで検索が機能しません。

誰かが問題を特定するのを手伝ってください。問題を明確に説明できたことを願っています。

前もって感謝します。

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

php - YII CGridView: ページ変更後の jquery 関数のバインド

ページサイズ5のCGridViewウィジェットを使用しています

次へ、戻る、またはページ番号ボタンをクリックしてページ変更が発生した後に実行したいjquery関数をバインドしようとしています。

これらのボタンのクリック機能にフックしてそれをやろうとしました...

しかし問題は、この turnOnButtons() がページ変更の前に実行されることです。ページが変更された後に実行したい。

CGridVowew の次/前のページがレンダリングされた後に関数を実行する方法はありますか。

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

php - Yii はカスタム CGridView のデフォルト オプションを設定します

PHP フレームワーク Yii を使用します。ご存知のように、デフォルトの CGridView テーブル CSS クラスはitemsです。さて、私はこの値を変更したいと思います。特定のウィジェットで可能であることは知っています。このような:

しかし、Yii アプリケーション全体でこれを行うにはどうすればよいでしょうか? つまり、デフォルトを別のクラスにしないことを意味しますitems

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

yii - Yii CGridView - 2 つのソースからの表示とページ付け

2 つのデータ ソースがあります

最初のデータベースからグループ メンバーのリスト ID (1 万行以上) を取得し、リストを取得した後、2 番目のデータベースにクエリを実行するか、Memcached にアクセスして実際の詳細を取得します。

上記のデータ プロバイダーでは、2 番目のデータベースを含めて実際のユーザー名を取得する方法がわかりません。これは、別のデータベースにあるためです。あるデータベースから別のデータベースへの直接接続はありません。

ここでの問題は、ページネーションが最初のデータベース テーブル (ページあたり 30 レコード) に基づいており、実際のデータが 2 番目のテーブルからのものであることです。

これを実装する方法について何か考えはありますか?

ありがとうございました

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

yii - YII "プロパティ x は定義されていません" ... ただし、

解決:

アプリケーションのドキュメント ルートに Samples.php ファイルがありました。アプリの通常の Yii 実行チェーンでこれが実際にどのように機能したかは、私にはわかりません。しかし、それはありました。私はそれを削除しましたが、今では正常に機能しています。ありがとう!


更新: (私が知っている) すべてのキャッシュが無効になっていることを除けば、これはほぼ確実にアプリ レベルのキャッシュの問題です。製品の Models フォルダに移動してさまざまなモデルを削除すると、Yii はすぐに、これらのモデルが存在しないという予期されたエラーをスローします。Samples モデルではそうではありません。それは周りにとどまります。


Yii Search で非常に奇妙な問題が発生しています。

私がやっていることは、以前に 100 回行ったのと同じように、関連するモデルを検索することです。これは私の開発ホストでは正常に動作しますが、本番ホストに公開するとすぐに失敗します: Property "Samples.cancer_search" is not defined.

ファイルが実際に公開されていることを 2 回、3 回確認しました。このプロパティは、Samples モデルのルール内の「セーフ オン サーチ」リストにリストされています。プロパティは、モデルで public var として宣言されています。開発では完全に機能しますが、これらのファイル (およびアプリ全体) を本番環境に公開すると、プロパティが定義されていません。

これよりも奇妙なことに、私は製品サーバーに入り、悪いモデル、コントローラー、およびビューをコピーして新しい名前を使用し (同じ db テーブルを使用)、正常に動作しました。モデル、コントローラー、ビューの名前を Samples から SamplesTest/SamplesTestController に変更しただけで、うまくいきました。

すべてのキャッシュを無効にし (memcache を使用していた)、サーバーを再起動しました。それでも同じエラーが発生します。

モデル (製品ではなく開発で動作します。明確にするために短縮されています)

および検索ビュー

Yii アセット フォルダをクリアしましたが、役に立ちませんでした。

私は気が狂っているのですか、それとも私が気付いていないキャッシングの可能性がありますか?

ありがとう。

--

もう 1 つの手がかり - 検索グリッドで、prod サーバーの列ヘッダーにも正しい属性ラベルが使用されていないことに気付きました。dev と prod で同じである理由がわかりません。


edit 2モデルでパブリック変数を宣言し、コントローラー検索メソッドでログにトレースするだけで、同じ取引を試みました。Var は dev には存在しますが、prod には存在しません。

edit 3 これで、何かがキャッシュされていることがわかりました。Samples モデルを削除したところ、古いキャッシュ バージョンが引き続き使用され、新しいプロパティが見つかりません。Memcached が無効になっており、mysql クエリ キャッシュをリセットしました。このファントムモデルを今でも使用しています。

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

yii - Yii - CGridView の 1 対 N 表示の問題

私は 1 か月前に Yii を使い始めましたが、非常に直感的ですが、ウィジェットに関してはやや混乱しています。

私が開発しているアプリでは、Active Record を使用することもありますが、MyIsam を使用しているため(そしてこれを変更することはできません)、外部キーをサポートしていないため、その関係を使用できません。

私の問題は、CGridViewがあり、それにカスタム データを追加したいのですが、問題が発生していることです。

右のモデルではFKと1対多の関係ですが、先ほども言いましたがARの魔法が使えません。

これ、アプリケーション モデルとプロファイル モデルがあります。Profile モデルにはアプリケーションFKがあります。

関数を取得したので、CGrid をレンダリングするときに、*id_app* の代わりに各アプリケーションの名前を取得できます。

自動生成されたテンプレートの Profile Admin.php ビューで、次の情報を取得しました。

そして、これが私の問題です、私は試しました(そしてあらゆる種類のバリエーション):

各行の値ではなく実際の文字列を渡しているため、結果として得られるのはnullだけです。関数のクエリに直接 ID を渡すと、次のように正しい値が返されます。->where('a.id=:id_app', array(':id_app'=>3))

変更する必要があるのは検索基準ですか? 同様の質問を見つけましたが、それらはすべてProfile->applicationなどの AR を使用しており、前述のとおり、 MyIsam の制限により使用できません。

この新参者へのヒント、または同様の問題に関する解決策へのリンクを歓迎します。