首页 > 解决方案 > 检查帖子作者是否等于登录用户

问题描述

用户可以发布“教程”,每个教程都通过他们的“user_id”与其作者相关联。我的问题是如果登录用户正在查看他们自己的帖子(教程),我想更改视图。

控制器:

  public function view($id = null)
{
    $tutorial = $this->Tutorials->get($id, [
        'contain' => ['Users','Courses', 'TutorialComments.Users']
    ]);


    $tutorialComment = $this->Tutorials->TutorialComments->newEntity();

    $this->set(compact('tutorial', 'tutorialComment'));

}

看法:

<? if (($tutorial->user->id) === ($this->request->session()->read('Auth.User.id'))): ?> 

<p> hello </p>

 <? endif; ?> 

标签: sessionif-statementcakephp

解决方案


您应该通过 Auth 组件访问登录的控制器并将用户传递给视图

控制器

$logged_user_id = $this->Auth->user('id');

$this->set(compact('tutorial', 'tutorialComment', 'logged_user_id '));

看法

if($tutorial->user->id == $logged_user_id) {
    // your code here
}

推荐阅读