установить собственное перенаправление ошибок в symfony?

Я использую Symfony 1.4 с Propel в качестве ORM. Я создал систему входа в систему для моей веб-страницы, где пользователь может войти и изменить данные своей учетной записи. Страница настроена с помощью Permission = "user" и Group = "user". Но при входе в систему с пользователем, который не принадлежит к этой группе, выполняется перенаправление на страницу Symfonys по умолчанию (показывая, что у пользователя нет учетных данных для просмотра этой страницы). можно ли настроить эти страницы и установить наши собственные сообщения .. и как мы можем настроить страницы ошибок ??

код, который я использовал,

if($this->getContext()->getUser()->hasCredential("user"))
{
    $user_name=$this->getUser()->getGuardUser()->getUsername();
    $this->name=$user_name;
}
else
{
    $this->forward("userlogin", "error");
}

но я не знаю, что это лучший способ ..


person Harish Kurup    schedule 13.11.2010    source источник


Ответы (2)


Вы можете изменить шаблоны, перезаписав их в своем приложении: apps/<appname>/modules/default/templates/error404Success.php

Чтобы увидеть список возможных шаблонов, посмотрите: lib/vendor/symfony/lib/controller/default/templates/

Теперь о полномочиях. В файле apps/<appname>/config/settings.yml:

# ...

all:
  # ...

  .actions:
    login_module:           sfGuardAuth   # Change this to whatewer You want.
    login_action:           signin        # Change this to whatewer You want.

    error_404_module:       default       # Change this to whatewer You want.
    error_404_action:       error404      # Change this to whatewer You want.

Так что если Вы хотите изменить только шаблон - меняйте только шаблон. Но если Вам нужно что-то более мощное - измените settings.yml и напишите собственный код.

person petraszd    schedule 13.11.2010
comment
на самом деле это не работает! Я выполнил действие (error404Success.php) в модуле и установил конфигурацию на error_404_module: mymodule и error_404_action: error404. но не работает ... перенаправляется на дефолтный .. - person Harish Kurup; 13.11.2010
comment
возникла проблема, на самом деле я проверял в режиме Dev, и, следовательно, он не показывал мне страницу Custom Error! ... - person Harish Kurup; 17.11.2010

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

person Gregoire    schedule 16.11.2010
comment
хорошо, я изучу это ... можно ли что-нибудь сделать в файле маршрута ?? - person Harish Kurup; 16.11.2010