只有一个用户可以打开 admin.ctp 个文件

Only one user can open admin.ctp file

我想做一个页面,这个页面只能打开一个用户。我想做这样的事情:如果用户 id = 1 那么它的打开否则它的抛出错误。

我已经试过了:

if (in_array($this->action, array('controller' => 'users', 'action' => 'admin'))) {
        $postId = (int) $this->request->params['pass'][0];
        if ($this->User->isOwnedBy($postId, $users['id'] = 1)) {

            return true;
        }else{echo "You are not admin!";}

    }

然后我想,也许这样更容易一些?

public function admin($id = null) {

            $this->User->id = $id;
                if ($id == 1) {
                    echo 'You are admin';
                }
                else {
                    throw new NotFoundException(__('You are not admin !'));
                }
        }

但它不起作用,我如何将此用户 ID 放入此 if 中。第二个解决方案只抛出这个错误,但我不想要它,如果用户 ID 是 1,我想要访问。

这是用户图片

感谢您提供任何线索或解决方案。

所以你想检查用户 ID 是否为 1 ??

//Fetch the user informations from database and stock it into $user

if(is_admin($user[id])){
    echo 'You are admin';
}
else{
    echo 'You are not admin';
}

function is_admin($id = NULL){
    if($id == 1){
        return true;
    }
    else{
        return false;
    }
}

如果我误解了请告诉我

编辑: 根据我们的聊天记录,试试这个:

//Fetch the ID of the user and stock it in $user_id

if($user_id == 1){
    echo 'You are admin';
}
else{
    echo 'You are not admin';
}

获取登录用户数据的推荐方法是通过 AuthComponent 本身:

// in any controller
$userId = $this->Auth->user('id');

Accessing the logged in userAccessing the logged in user in the Auth section of the CakePHP Book

试试这个-

public function admin($id = null) {
   $currentUserId = $this->Auth->user(id);
   //$isAdmin       = $this->User->hasAny(
      //array('User.id' => $currentUserId)
   //);
   //if ($isAdmin) {
   if ($currentUserId == 1)
       echo 'You are admin';
   } else {
       throw new NotFoundException(__('You are not admin !'));
   }
}

对于登录用户。

更好的选择:-

为管理员使用角色 ID,这将帮助您管理多个管理员。并将负 ID 提供给管理员:- 喜欢在用户 table 中添加 role_id 列并为 -1

赋值
public function admin($id = null) {
   $role = $this->Session->read('Auth.User.role_id');
   if ($role < 0)
       echo 'You are admin';
   } else {
       throw new NotFoundException(__('You are not admin !'));
   }
}