Я использую cakephp 3.x поставили запросы базы данных в модели, в которой я хочу проверить текущее действие контроллера и на основании этого сделаю свои запросы к базе данных ,Как получить текущее действие контроллера в cakephp 3.x модель
Я знаю, что могу передать действие контроллера от моего контроллера непосредственно к моей функции модели, но есть способ, которым я могу просто проверить текущее действие контроллера в моей модели только так, чтобы мне не нужно было передавать его в моих многочисленных функциях, которые только внутри модели.
Моя Попробуйте - UsersTable.php
public function initialize(array $config)
{
parent::initialize($config);
$this->table('users');
$this->primaryKey('user_id');
echo '<pre>';
print_r($GLOBALS);
exit;
}
до сих пор, если я это сделать, я получил массив в ответ, и в котором я нашел это лучший результат из других вещей в том, что массив
[REQUEST_URI] => /5p_group/users/add
Я м также пытается использовать этот
echo '<pre>';
print_r($GLOBALS['_SERVER']['HTTP_REFERER']);
exit;
, что дает мне этот выход
http://localhost/5p_group/users/archived
так в конце концов, я получаю результат, который я хочу, но я хочу другой подходящий метод, который использует CakePHP 3.x ..
Так есть ли другой способ или более частый путь от этого я могу получить свое текущее действие контроллера?
Любые идеи будут оценены ..
Благодарности
Это явное нарушение разделения интересов, то есть очень плохая идея, ваша модель не должна знать о внешнем мире и принимать такие решения! Если контроллер хочет получить данные от модели, то он сообщает модели, какие данные он хочет, а не наоборот! Вы можете получить более эффективную помощь, если будете разбираться в том, что именно вы должны запрашивать _ точно. – ndm
Я знаю, что это не имеет смысла ... но не так ли знать материал? –
Невероятно знать о вещах, нет, как о плохих практиках и о том, как их избежать. И если вы хотите узнать еще больше, например, как это сделать правильно, то, пожалуйста, подробно остановитесь на фактической технической проблеме, которую вы пытаетесь решить, то есть уже упоминалось, «_Что точно вам нужно запрашивать _когда точно?» , – ndm