5

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

Undefined property: CWebApplication::$user

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

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

if(isset(Yii::app()->user))

ただし、失敗します。¿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が書いたように:これは完全な推測です。

4

2 に答える 2

0

申し訳ありませんが、フレームワークを破損する大規模な代替品を実行しました。問題はyiiディレクトリであることに気付きました。これは、gitで追跡しないためです。新しい本番環境をセットアップしたときに、仮想マシンですべてが正常に動作し、唯一の違いはフレームワークディレクトリでした。助けてくれてありがとう。

于 2012-06-18T13:54:45.487 に答える
-1

仮想マシンでGitLabからマスターブランチをプルするときにも同様の問題が発生していました。ユーザーやセッションコンポーネントが見つからなかったようです。

私はこれを何日も行ってきましたが、Yiiのindex.phpの最初の行にこれを追加していることがわかりました(「

error_reporting("E_ALL & ~E_STRICT");
于 2013-01-15T15:58:19.697 に答える