2011-06-16 142 views
0

我想访问当前登录的id用户如何在cakePHP中的函数beforeDelete()中获取当前登录用户的ID?

beforeDelete()功能/app/models/course.php

function beforeDelete() 
{ 
// Some code 
// code also sets value of $uid2 

$uid = $this->Auth->user('id'); //this is line 86 in course.php 

    if ($uid2 == $uid) { 
      return true; 
    } 
    else { 
      return false; 
    } 
} 

但在执行过程中,我得到以下错误:

Notice (8): Undefined property: Course::$Auth [APP/models/course.php, line 86] 
Fatal error: Call to a member function user() on a non-object in /var/www/some_path/app/models/course.php on line 86 

请建议。

+0

组件(如Auth组件)仅可用于控制器。所以这就是为什么你会得到错误。我不知道如何以一种干净的方式解决这个问题。 – Arjen 2011-06-16 13:59:55

+0

感谢@Terr。 burzum建议的方法工作 – 2011-06-16 14:41:07

回答

2

将当前登录用户的ID与d从控制器到模型。

$this->Model->data[$this->Model->alias]['user_id'] = $this->Auth->user('id'); 

在你beforeDelete()回调,你可以访问它

$this->data[$this->alias]['user_id'] 

,做任何你想要在那里。我可以给你进一步的建议,但你的问题是,说实话,不是很丰富。请在将来更具体地谈谈你的目标。

+0

谢谢,它的工作原理! – 2011-06-16 16:04:52

相关问题