0

私はsf1.4を使用してプロジェクトを開発しています。このコードをテンプレートに入れました:

<p class="welcome"><?php echo $sf_user->getGuardUser()->getProfile()->getFirstName().' '.$sf_user->getGuardUser()->getProfile()->getLastName()?></p>
<p class="logout"><a href="<?php echo url_for("@sf_guard_signout"); ?>
">Log Out</a></p>

$sf_user->getGuardUser()をクリックしても機能しないようで、Logout次のエラーが発生します。

 Fatal error: Call to a member function getProfile() on a non-object in...on line 3

編集 :

apps/myapp/config/app.yml に、次を追加します。

all:
  sf_guard_plugin:
    profile_class:      sfGuardUserProfile
    profile_field_name: user_id

編集2:

このコードは同じテンプレートで非常にうまく機能し、他のテンプレートでエラーが発生することがわかりました!

4

1 に答える 1

1

sfGuardUser オブジェクトの getProfile() メソッドを見ると、app.yml ファイルでデフォルトの Profile クラスをチェックしていることがわかります。

$profileClass = sfConfig::get('app_sf_guard_plugin_profile_class', 'defaultClassName');

したがって、この情報が app.yml にあることを確認してください。

// apps\myApp\config\app.yml
sf_guard_plugin:
   profile_class: MyProfileClassName
于 2013-04-21T02:20:34.863 に答える