2011-07-15 24 views
1

私はPHPとZend Framwworkを使ってWebアプリケーションを開発しています。私は自分のアプリケーションにログインとログアウトのコンセプトを実装したいと思います。最初のステップで、うまく働いている認証アダプタを作成し、 。 ログインにアンカータグが付いているアプリケーションにメニューバーがあります。ログインリンクをクリックすると、ログインページが表示されます。 私の質問は、ユーザーが有効な資格情報でログインした後、メニューのログインテキストがログアウトに変わり、ユーザーのログアウトがログインに戻ったときです。そのようなタスクのためログインとログアウトzendフレームワーク

答えて

4

、Iは、ユーザが記録されているかどうかチェックするprofileLinkビューヘルパーを有し、適切なメッセージを表示します。

/** 
* ProfileLink helper 
* 
* Call as $this->profileLink() in your layout script 
*/ 
class My_View_Helper_ProfileLink extends Zend_View_Helper_Abstract { 


    /** 
    * View instance 
    * 
    * @var Zend_View_Interface 
    */ 
    public $view; 


    public function profileLink() { 

     $baseUrl = $this->view->baseUrl(); 

     $auth = Zend_Auth::getInstance(); 

     $html = '<a href="'.$baseUrl.'/login">'. $this->view->translate('Login') .'</a>'; 

     if ($auth->hasIdentity()) { 
      // here have to make amendments to what you have 
      // in your identity. 
      $identity = $auth->getIdentity();       
      $fname = $identity->property->nickname; 
      $url = $this->view->baseUrl('/user'); 
      $fnameLink = "<a href=\"$url\"/>$fname</a>"; 
      $html = $fnameLink . ' <span>|</span> <a href="'.$baseUrl.'/logout">' 
       . $this->view->translate('Logout') . '</a>' ; 
     } 

     return $html; 
    } 


    /** 
    * Get Zend_View instance 
    * 
    * @param Zend_View_Interface $view 
    */ 
    public function setView(Zend_View_Interface $view) { 
     $this->view = $view; 
    } 

} 

白衣この、私は持っているlayout.phtmlで:

<?php echo $this->profileLink(); ?> 

ビューヘルパーは、ネットのどこかで見つかったもの(私は元のバージョンへのリンクがありません)の修正バージョンです。

これはあなたに役立つと希望しています。

+0

私のビューヘルパーも同様に機能します。しかし、ログアウトの場合、私はログインと登録のためのリンクを表示します。ログインした場合、プロフィールとログアウトのリンクが表示されます。 –

0

あなたはZend Frameworkの1.12を使用している場合は、エラーメッセージに次のようなものが見つかりました:名前で

プラグインは、「ProfileLink」レジストリに見つかりませんでした。私はZendのマイを交換する必要があり、この問題を解決するために

が、これはあなたを助けることを願っています。

関連する問題