問題タブ [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.
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に感謝します。
php - CGridView の htmlOptions に式を追加する
CGridView コンポーネントの DataProvider として使用される配列の値を使用して htmlOptions を設定しようとしています (これは CArrayDataProvider です)。その中には、0 または 1 のいずれかになるフラグがあります (font-weight の場合は 0: 通常、太字の場合は 1)。
うまくいかなかったので、DataProvider で直接スタイルを設定しようとしました (font-weight: bold; または font-weight: normal; を返します):
しかし、出力は次のとおりです。
私は何を間違っていますか?
controller - コントローラで $model->attributes の値を変更する方法 - Yii
UserMasterController コード:
エラーが発生する行は次のとおりです。$model->attributes['emailsent'] = 'N';
エラー: オーバーロードされたプロパティを間接的に変更し
UserMaster::$attributes
ても効果がありません
属性値を変更するにはどうすればよいですか? 条件に合わせて設定したいだけ'Y'
です'N'
widget - Yii で複数のモデルを使用して単一のビューをウィゲタイズする方法は?
「ダッシュボード」という 1 つのビューしかない Yii アプリケーションで作業しています。この単一のインターフェイスですべてのアプリケーション アクティビティを実行する必要があります。すべてのユーザーの詳細、アカウント、履歴、カード機能のステータスを表示するように。
したがって、DashboardController を使用して、この単一の「ダッシュボード」インターフェイスでユーザーのすべての curd アクティビティを定義する方法は次のとおりです。可能であれば解決策を提案してください。ありがとう !!!
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が初めてです。助けてください。
jquery - Firebug エラー: jQuery が定義されていません - yii アプリで
Yii フレームワーク v1.1.10r3566 を使用しています。生成されたコードがエラーを生成していることに Firebug で気付きました。「jQuery is not defined」と表示され、行には関数「jQuery(function($)」があります。複数のページで発生しており、zii ウィジェットが正しく動作していないと思われます (以前は CJuiDatePicker が機能していませんでした)。 jQuery を使用してルーチンを作成したり、他の JavaScript ライブラリを含めたりすることはありません。エラーを生成しているページの 1 つで生成されたコードは次のとおりです。
私は機知に富んでおり、生成されたコードがこのエラーを生成する理由がわかりません。助けていただければ幸いです。
yii - 単一のフォームの部分的な送信を実現するためにyiiのサブセクションにフォームを分割する方法
ユーザー情報に関するすべてのフィールドを含むモデルがあります。そして、crudジェネレーターを使用して、以下のようにビューを作成し、ビュー、フォームビューを変更しました
ここでは、編集プロファイル部分を非表示にしています。ユーザーが編集をクリックすると、ポップアップと編集フィールドのオプションが表示されます。問題は、送信するときにフォーム全体を送信することですが、編集した部分だけを送信する必要があります。もう1つの問題は、何かを編集してからフォームをキャンセルすると、値が編集されたままになり、いずれかを送信するときに保存されることです。フォームの他の部分。フォームの部分的な送信をどのように達成できるかを提案してください
jquery - afterAjaxUpdate コールバック関数 CListView は未定義を示します
ファイル名の afterAjaxUpdate パラメータによって別の js ファイルで定義されている関数を呼び出そうとしていますが、関数が定義されていないというエラーがコンソールに表示されました
私のjs関数は
私のソースでは、ファイルで定義された関数が、yii のデフォルトでインクルードされているすべての js ファイルの後にインクルードされていることがわかります。スクリプトをレイアウトに登録すると、$ が見つかりません。私のイベントをトリガーするために、私も設定しようとしました
renderPartial('Mybelowview',null,false,true)
これにより、jsファイルが複数回含まれるようになり、イベントが複数回トリガーされます。
これは非常に紛らわしいです。抜け出すのを手伝ってください
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()を呼び出す
時間メモリ機能の場所なし
- 0.0005 235120 {main}()../index.php:0
- 0.0207 1548168 CApplication-> run()../index.php:13
- 0.0207 1548352 CWebApplication-> processRequest()../CApplication.php:162
- 0.0235 1725768 CWebApplication-> runController()../CWebApplication.php:135
- 0.0272 2103464 CController-> run()../CWebApplication.php:276
- 0.0279 2145872 CController-> runActionWithFilters()../CController.php:266
- 0.0279 2145984 CController-> runAction()../CController.php:287
- 0.0279 2146128 CInlineAction-> runWithParams()../CController.php:309
- 0.0279 2146688 SiteController-> actionIndex()../CInlineAction.php:50
- 0.0529 3875888 CController-> render()../SiteController.php:33
- 0.0529 3876112 CController-> renderPartial()../CController.php:783
- 0.0532 3877352 CBaseController-> renderFile()../CController.php:870
- 0.0532 3877672 CBaseController-> renderInternal()../CBaseController.php:96
- 0.0539 3918144 require(foo_dir / protected / views / site / index.php')../CBaseController.php:127
- 0.0705 4428584 CModule-> __ get()../CBaseController.php:199
- 0.0705 4428584 CModule-> getComponent()../CModule.php:104
- 0.0723 4580360 CWebUser-> init()../CModule.php:388
- 0.0736 4671144 CWebUser-> getIsGuest()../CWebUser.php:195
- 0.0736 4671240 CWebUser-> getState()../CWebUser.php:279
- 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が書いたように:これは完全な推測です。