Проблема перенаправления контроллера в CakePHP - PullRequest
0 голосов
/ 05 сентября 2011

У меня есть контроллер с именем users_controller, в рамках действия входа в систему я хочу перенаправить на свой affiliate_redirect_controller.php, теперь я следующий код в контроллере пользователей для перенаправления

$this->redirect(array(
      'controller'=>'affiliate_redirect',
      'action'=>'logRedirect' ));

И затем я получаюСледующая ошибка, которую я не могу устранить

Error: The requested address '/affiliate_redirect/logRedirect' was not found on this server.

Я, честно говоря, не знаю, что это может быть, совершенно новое для cakePHP, и ни одно из найденных решений не работает для меня.

содержимое affiliate_redirect_controller.php выглядит следующим образом

class AffiliateRedirectController extends AppController
{
    var $name = 'AffiliateRedirect';

    function logRedirect(){
     }
}

Ответы [ 3 ]

1 голос
/ 06 сентября 2011

Я вижу, что в вашем коде есть ошибка из-за соглашения об именах.

$this->redirect(array(
      'controller'=>'affiliate_redirects',
      'action'=>'logRedirect' ));

Пожалуйста, обратите внимание на вышеприведенные изменения, когда вы пишете имя контроллера в нижнем регистре, как указано выше, оно должно быть во множественном числе affiliate_redirects и не должно быть affiliate_redirect

Кроме этого вы можете использовать прямое перенаправление, как это также.

$this->redirect('affiliate_redirects/logRedirect');

Пожалуйста, попробуйте, это должно работать.

1 голос
/ 05 сентября 2011

У вас есть таблица в вашей базе данных, которая соответствует контроллеру перенаправления филиалов?

Возможно, вы захотите переосмыслить свою логику и использовать маршруты CakePHP, чтобы установить желаемый URL-адрес.Наличие контроллера с именем affiliate_redirect_controller не соответствует соглашениям CamingPHP об именах.

Поскольку я не знаю точно, что вы пытаетесь сделать, я не знаю, сработает ли это для вас, но, возможно, стоит подумать о перенаправлениик отдельному действию в UsersController, например /users/affiliate_redirect/
Или вы можете создать AffiliatesController и затем перенаправить на /affiliates/redirect/

Кроме того, если у вас не установлен режим отладки 2, вы должнысделай это.Это может помочь выявить реальную проблему.

0 голосов
/ 06 сентября 2011

Какой уровень отладки у вас есть в app / config / core.php?В большинстве случаев, когда вы получаете сообщение

Error: The requested address '/controller/action' was not found on this server.

, это означает, что у вас установлен уровень отладки, равный 0, а увеличение его до 1 или 2 позволяет получить более подробную информацию об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...