如何从cakephp中的数据库表中获取id值

时间:2016-04-05 20:22:03

标签: php mysql cakephp cakephp-3.x

CakePHP的

我有从表

获取id值的问题

我的表名为"users",其ID为PK(int),username(txt) name(txt)

我试过了

$this->users->read('users.id)

获取用户ID但不起作用。

我也试过

$this->request->session()->read('users.id')

我想做一个像

这样的条件
if($this->users->read('users.id'))==1 

因为我想隐藏来自其他id的用户的HTML代码。 我也尝试使用类似的东西...... read('users.username')=='admin'但它们也不会工作

正如您所看到的尝试使用session()来获取id但不能使用

我的登录功能是

public function login()
{
    if ($this->request->is('post')) {
        $user = $this->Auth->identify();
        if ($user) {

                $this->Auth->setUser($user);
            return $this->redirect(['controller'=>'Accounts']);
        }
        $this->Flash->error('blalalalala');
    }
}

这是我在学校的第一个项目,所以你们可以帮帮我吗? :) 我在PHP中很弱

提示但仍然无法使用。

我用这个

$id  =  $this->Auth->user('id');  // To get user id 
    $this->set('id', $id);

在我的AppController中的funciton中过滤。

我使用例如if($id==1) .....并且仍然无法工作。 var dump显示为null。

我忘了说,但我有CakePHP 3x version

2 个答案:

答案 0 :(得分:1)

要在控制器中设置用户任何信息,您可以使用

$this->Auth->user('fieldName');

AppController方法的beforeFilter中,只需设置您需要的用户信息,如下面的代码

$id  =  $this->Auth->user('id');  // To get user id 
        $this->set('id', $id);   

现在,在任何视图中,您都可以应用

之类的条件
if($id==1) 
--do this-- 

如果你想在任何你可以使用的地方获得用户名,那就不允许在cakephp 3.x

AuthComponent::user('id')

有关详情,请参阅doc

答案 1 :(得分:0)

你可以试试这些:

 $this->Auth->user('id'); // for controller action

OR

$this->Session->read('Auth.User.id'); // for controller and views

OR

AuthComponent::user('id') // anywhere