0

私は Cakephp のブログ/ユーザー認証チュートリアルに取り組んでおり、いくつかの機能を追加してコツをつかもうとしています。現在、認証のこのページにいます http://book.cakephp.org/2.0/ en/tutorials-and-examples/blog-auth-example/auth.html

ユーザーがログインしている場合にのみログアウトするリンクを表示し、ユーザーがログアウトしている場合にのみログイン リンクを表示しようとしています。ユーザーがビュー内でログインしているかどうかを確認するこの投稿のアドバイスに従っていますが、少し混乱しています。

edit- authuser が正しく検出されていることを確認するために、単純に echo "test" ステートメントをそこに入れました。リンクは正常に機能していましたが、echo ステートメントを削除すると、ログインしていてもリンクにログインのみが表示されます。要素に何かをエコーするときにのみリンクが正しく機能する理由がわかりません。

したがって、私の投稿/インデックスページには次のものがあります

<?php
if($this->element('authuser') == TRUE){   
?>
    <p><?php echo $this->Html->link('Log In', array('controller'=>'users','action' => 'login')); ?></p>
<?
}
   else{ 
?>
    <p><?php echo $this->Html->link('Log Out', array('controller'=>'users','action' => 'logout')); ?></p>
<?
}
?> 

私の要素authuser.ctpには含まれています

<?
 $authuser = AuthComponent::user();

if($authuser){
  RETURN TRUE;
}
 echo "test"; //when this is commented out the link on posts/index only displays login
?>
4

1 に答える 1

2

静的メソッドを呼び出すことで、現在ログインしているユーザーをいつでも表示できます

$authUser = AuthComponent::user();

アクションから渡す代わりに、このようにして、現在ログインしているユーザーをどこでも取得できます。

とにかく、このロジックを要素に追加して再利用することをお勧めします。

于 2012-05-26T18:00:30.310 に答える