問題タブ [yii-components]

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

php - Yii CGridViewの仮想属性にフィルターを追加し、ソート可能にします

私は次のモデルを持っています:

User列{id、user_name、password、user_type}

Admin列{id、user_id、full_name、..... etc}

Editor列{id、user_id、full_name、... etc}

との関係は User'admin' => array(self::HAS_ONE, 'Admin', 'user_id'),'editor' => array(self::HAS_ONE, 'Editor', 'user_id'),

Admin'user' => array(self::BELONGS_TO, 'User', 'user_id'),

Editor'user' => array(self::BELONGS_TO, 'User', 'user_id'),

fullNameこれで、Userモデルに仮想属性を次のように設定しました

グリッドビューで仮想属性を表示できますがfullName、属性にフィルターを追加してグリッドビューで並べ替え可能にするにはどうすればよいですか?

UPADTE 1:

以下に示すように、@ Jonの回答に従って、モデルのsearch()関数を更新しました。

管理者と編集者の両方の名前がグリッドビューに正しく表示されます。しかし、フィルターを検索すると、次の例外が発生します。

どうすればこれを取り除くことができますか?

更新2:私の間違い。行を変更すると正常に動作します

そしてところで@Jonに感謝します。

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

php - CGridView の htmlOptions に式を追加する

CGridView コンポーネントの DataProvider として使用される配列の値を使用して htmlOptions を設定しようとしています (これは CArrayDataProvider です)。その中には、0 または 1 のいずれかになるフラグがあります (font-weight の場合は 0: 通常、太字の場合は 1)。

うまくいかなかったので、DataProvider で直接スタイルを設定しようとしました (font-weight: bold; または font-weight: normal; を返します):

しかし、出力は次のとおりです。

私は何を間違っていますか?

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

controller - コントローラで $model->attributes の値を変更する方法 - Yii

UserMasterController コード:

エラーが発生する行は次のとおりです。$model->attributes['emailsent'] = 'N';

エラー: オーバーロードされたプロパティを間接的に変更しUserMaster::$attributesても効果がありません

属性値を変更するにはどうすればよいですか? 条件に合わせて設定したいだけ'Y'です'N'

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

widget - Yii で複数のモデルを使用して単一のビューをウィゲタイズする方法は?


「ダッシュボード」という 1 つのビューしかない Yii アプリケーションで作業しています。この単一のインターフェイスですべてのアプリケーション アクティビティを実行する必要があります。すべてのユーザーの詳細、アカウント、履歴、カード機能のステータスを表示するように。

したがって、DashboardController を使用して、この単一の「ダッシュボード」インターフェイスでユーザーのすべての curd アクティビティを定義する方法は次のとおりです。可能であれば解決策を提案してください。ありがとう !!!

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

php - Yii ユーザー認証とセッションが機能しない

Yii で Web サイトを構築していますが、ユーザー認証の段階で行き詰まっています。何をしても、ユーザーを認証したり、セッションに値を保存したりできません。

私の UserIdentity コンポーネントは次のとおりです。

MyYii:app()->user->isGuestは常に true をYii::app()->user->id返し、何も返しません。

そのためYii::app()->session['loggedin']、認証を行うために使用してみました。しかし、それでも機能していません。このようにセッション配列にアクセスするとYii::app()->session、エラーが発生しますProperty "CWebUser.session" is not defined.

これは本当にイライラしています。私はYiiが初めてです。助けてください。

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

jquery - Firebug エラー: jQuery が定義されていません - yii アプリで

Yii フレームワーク v1.1.10r3566 を使用しています。生成されたコードがエラーを生成していることに Firebug で気付きました。「jQuery is not defined」と表示され、行には関数「jQuery(function($)」があります。複数のページで発生しており、zii ウィジェットが正しく動作していないと思われます (以前は CJuiDatePicker が機能していませんでした)。 jQuery を使用してルーチンを作成したり、他の JavaScript ライブラリを含めたりすることはありません。エラーを生成しているページの 1 つで生成されたコードは次のとおりです。

私は機知に富んでおり、生成されたコードがこのエラーを生成する理由がわかりません。助けていただければ幸いです。

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

yii - 単一のフォームの部分的な送信を実現するためにyiiのサブセクションにフォームを分割する方法

ユーザー情報に関するすべてのフィールドを含むモデルがあります。そして、crudジェネレーターを使用して、以下のようにビューを作成し、ビュー、フォームビューを変更しました

ここでは、編集プロファイル部分を非表示にしています。ユーザーが編集をクリックすると、ポップアップと編集フィールドのオプションが表示されます。問題は、送信するときにフォーム全体を送信することですが、編集した部分だけを送信する必要があります。もう1つの問題は、何かを編集してからフォームをキャンセルすると、値が編集されたままになり、いずれかを送信するときに保存されることです。フォームの他の部分。フォームの部分的な送信をどのように達成できるかを提案してください

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

jquery - afterAjaxUpdate コールバック関数 CListView は未定義を示します

ファイル名の afterAjaxUpdate パラメータによって別の js ファイルで定義されている関数を呼び出そうとしていますが、関数が定義されていないというエラーがコンソールに表示されました

私のjs関数は

私のソースでは、ファイルで定義された関数が、yii のデフォルトでインクルードされているすべての js ファイルの後にインクルードされていることがわかります。スクリプトをレイアウトに登録すると、$ が見つかりません。私のイベントをトリガーするために、私も設定しようとしました

renderPartial('Mybelowview',null,false,true)

これにより、jsファイルが複数回含まれるようになり、イベントが複数回トリガーされます。

これは非常に紛らわしいです。抜け出すのを手伝ってください

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

yii - Yii :: app()->user->isGuestを使用するとエラーが発生する

Yii :: app()-> user-> isGuestを使用して、ユーザーがゲストであるかどうかを確認しようとしていますが、次の通知が表示されます。

どうやらコンポーネントユーザーがまだアプリケーションで定義されていないようですが、その理由を知りたいのですが。

コンポーネントが利用可能かどうかを確認しようとしました

ただし、失敗します。¿Yii :: app()-> userが定義されていない場合でも、ユーザーがゲストであるかどうかを確認するにはどうすればよいですか?¿isGuestを使用しているときにこの通知を受け取る必要がありますか?

編集:error_reportingディレクティブを「E_ALL&〜E_NOTICE&〜E_DEPRECATED&〜E_STRICT」に変更しました。先に進む必要がありました。今、私はこの致命的なエラーを受け取りました:

致命的なエラー:530行目のhome / mario / projects / ciudad_wiki / yii / framework / web / auth / CWebUser.phpの非オブジェクトでメンバー関数getId()を呼び出す

時間メモリ機能の場所なし

  1. 0.0005 235120 {main}()../index.php:0
  2. 0.0207 1548168 CApplication-> run()../index.php:13
  3. 0.0207 1548352 CWebApplication-> processRequest()../CApplication.php:162
  4. 0.0235 1725768 CWebApplication-> runController()../CWebApplication.php:135
  5. 0.0272 2103464 CController-> run()../CWebApplication.php:276
  6. 0.0279 2145872 CController-> runActionWithFilters()../CController.php:266
  7. 0.0279 2145984 CController-> runAction()../CController.php:287
  8. 0.0279 2146128 CInlineAction-> runWithParams()../CController.php:309
  9. 0.0279 2146688 SiteController-> actionIndex()../CInlineAction.php:50
  10. 0.0529 3875888 CController-> render()../SiteController.php:33
  11. 0.0529 3876112 CController-> renderPartial()../CController.php:783
  12. 0.0532 3877352 CBaseController-> renderFile()../CController.php:870
  13. 0.0532 3877672 CBaseController-> renderInternal()../CBaseController.php:96
  14. 0.0539 3918144 require(foo_dir / protected / views / site / index.php')../CBaseController.php:127
  15. 0.0705 4428584 CModule-> __ get()../CBaseController.php:199
  16. 0.0705 4428584 CModule-> getComponent()../CModule.php:104
  17. 0.0723 4580360 CWebUser-> init()../CModule.php:388
  18. 0.0736 4671144 CWebUser-> getIsGuest()../CWebUser.php:195
  19. 0.0736 4671240 CWebUser-> getState()../CWebUser.php:279
  20. 0.0736 4671320 CWebUser-> getStateKeyPrefix()../CWebUser.php:557

トレースは最後のトレースと似ています。Yiiは$_SESSIONでユーザーコンポーネントに関連するものを見つけることができません。

編集#2: E_NOTICEをオンにしてトレースをアップロードしました。ここにあります: PHP通知

編集#3:最近phpを5.4に更新しました。php 5.3を使用するサーバーでアプリケーションを実行すると、問題はありません。おそらく、舞台裏で通知がありますが、php5.4で発生する致命的なエラーはありません。bool.devが書いたように:これは完全な推測です。