我想要一个页面,此页面只能打开一个用户。我想做类似这样的事情:如果用户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,我想要访问。
这是用户图片
感谢您提供任何线索或解决方案。
答案 0 :(得分:2)
试试这个 -
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 !'));
}
}
对于已登录的用户。
答案 1 :(得分:0)
登录用户数据的推荐方法是通过AuthComponent本身:
// in any controller
$userId = $this->Auth->user('id');
请参阅Accessing the logged in user的身份验证部分中的CakePHP Book访问登录用户。
答案 2 :(得分:0)
更好的选择: -
为管理员使用角色ID,这将为多个管理员提供帮助。并给管理员否定ID: -
比如在用户表中添加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 !'));
}
}
答案 3 :(得分:-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';
}