Я использую Cakephp 3.x , в котором я создал один метод внутри моего AppController
( checkBrandAssigned ), в котором я проверил свою логику и перенаправил на другую страницусогласно моим потребностямНиже показано, как выглядит метод.
AppController.php
public function checkBrandAssigned(){
$this->loadModel('Users');
$user_data = $this->Users->find()
->select(['user_id'])
->where([
'user_type' => SALES_REPRESENTETIVE,
'user_status' => STATUS_INACTIVE,
'user_id NOT IN (SELECT ub_user_id FROM fp_user_brand)'
])
->order([ 'user_modified_date'=>'DESC'])
->first();
if (!empty($user_data)) {
return $user_data->user_id;
} else {
return '';
}
}
Ниже приведен мой полный фрагмент файла AppController.php .
<?php
class AppController extends Controller {
public function initialize() {
parent::initialize();
switch ($this->request->session()->read('Auth.User.user_type')):
case COMPANY_ADMIN :
$loginRedirectUrl = ['controller' => 'users', 'action' => 'dashboardCompanyAdmin'];
break;
default : $loginRedirectUrl = ['controller' => 'users', 'action' => 'dashboardSalesRep'];
break;
endswitch;
}
public function checkBrandAssigned(){
$this->loadModel('Users');
$user_data = $this->Users->find()
->select(['user_id'])
->where([
'user_type' => SALES_REPRESENTETIVE,
'user_status' => STATUS_INACTIVE,
'user_id NOT IN (SELECT ub_user_id FROM fp_user_brand)'
])
->order([ 'user_modified_date'=>'DESC'])
->first();
if (!empty($user_data)) {
return $user_data->user_id;
} else {
return '';
}
}
}
Как вы можете видеть выше, я использовал checkBrandAssigned
метод внутри моего beforeFilter
, и если мое условие становится истинным, я перенаправляю на $this->redirect(['controller' => 'Users', 'action' => 'brandRetailerView','?'=>['repId'=>'6b12337d37870e4afb708a20f4f127af']]);
.
Ниже показано, как мой UsersController.php file.
UsersController.php
class UsersController extends AppController {
public function initialize() {
parent::initialize();
}
public function beforeFilter(Event $event) {
parent::beforeFilter($event);
}
public function brandRetailerView() {
die('inside my function');
}
}
Как вы можете видеть, я поставил die('inside my function');
Я могу видеть этот текст, однако,Если я комментирую это, я получаю сообщение об ошибке ...
Страница не перенаправляет должным образом
Я также создал пустой файл brand_retailer_view.ctp
в своем соответствующемместо нахождения.Ниже приведен скриншот моей ошибки.
Я также использовал Auth Component .Я хочу, чтобы после входа в систему использовались методы brandRetailerView
и checkBrandAssigned
, поэтому я не добавил в свои $this->Auth->allow
в AppController.php и UsersController.php .Тем не менее, я попытался добавить checkBrandAssigned
в $this->Auth->allow
, но все равно не работает.
Я пытался использовать return parent::beforeFilter($event);
в моем UsersController.php
, но он также не работает.
Я не добавил ничего лишнего в свой файл .htaccess
, поэтому я не добавляю сюда.
Может кто-нибудь помочь мне, почему у меня эта проблема.Даже если я использую die
, он работает, но как только я это комментирую, я получаю ошибку выше.