我正在使用Cakephp建立一个网站,这对我来说是一个新手。我已经创建了一个表单作为Admin,这是课程的一部分。然后,一般用户将注册该课程,并且必须作为课程的一部分填写该表格。我在CoursesEnrolled控制器中设置了一个页面,我需要一个普通用户才能访问表单(从Forms控制器)。当前,当我单击链接进入表单时,我收到警报“警告!您无权访问该位置。”
下面是我在“表单/添加”页面(表单所在的位置)中的代码:
class FormsController extends AppController
{
public function isAuthorized($user){
// Account denied by admin
if ($user['role'] == 'denied' || $user['role'] == 'archived') {
return false;
}
//Everyone has basic view
if (in_array($this->request->action, ['index','view','add'])) {
return true;
}
//only admin can delete
return parent::isAuthorized($user);
}
在add()中:
//allow user to add form from formTemplates
$conditions = $this->buildConditions($this->Forms->FormTemplates);
$userView = false;
if(!$this->isAdmin()){
$conditions['Forms.user_id'] = $this->Auth->user('id');
$userView = true;
}
$this->paginate = [
'contain' => ['Users','FormTemplates'],
'conditions'=>$conditions
];
$this->set(compact('form', 'formTemplate', 'preview','userView'));
表单本身是在FormTemplates控制器中创建的。 Forms和CoursesEnrolled表通过user_id连接。
我不确定我在做什么错,因此我们将不胜感激。