cubicmushroom / symfony-error-redirect
Symfony 扩展,提供带有闪存消息的简单重定向
Requires
- php: >=5.4
- symfony/symfony: >=2.5.0
This package is not auto-updated.
Last update: 2024-09-24 02:03:29 UTC
README
简介
Symfony2 扩展,提供方便地从调用堆栈的任何位置重定向用户并显示消息的服务。
它通过抛出 MessageRedirectException 实现此功能,然后由 MessageRedirectListener 捕获,该监听器将消息添加到会话的 flashBag 中,然后将用户重定向到指定的 URI。
如果将先前异常传递给 MessageRedirectException,并且当前环境已启用调试,则异常将不会触发重定向,并且将向用户显示异常,包括抛出的先前异常。
安装
要使用此扩展,请按照以下步骤操作...
-
使用 composer 添加扩展
"require": { "cubicmushroom/symfony-error-redirect": "dev-master" }
-
在 app/AppKernel.php 中注册扩展
class AppKernel extends Kernel { // ... public function registerBundles() { $bundles = array( // ... new CubicMushroom\MessageRedirectBundle\CubicMushroomMessageRedirectBundle(), ); // ... return $bundles; } // ... }
-
将消息模板添加到您的视图模板(可能最好在基本模板级别添加,以避免在每个视图中都记住这样做)
{{ include('CubicMushroomMessageRedirectBundle:elements:message.html.twig') }}
要添加自己的类到闪存消息中,在调用 include 之前定义 flashClasses twig 变量
{% set flashClasses = 'alert' %} {{ include('CubicMushroomMessageRedirectBundle:elements:message.html.twig') }}
使用方法
重定向
有 1 种重定向方式...
-
使用服务的方法 createRedirectWithMessage() 并从控制器中返回它。
// If within object with a Container object return $this->container->get('message_redirect')->createRedirectWithMessage( $uri, $message, $messageClass );
-
创建并抛出 RedirectMessageException
// If within object with a Container object thrown $this->container->get('message_redirect')->createRedirectException( $uri, $message, // optional messageType, // optional $previousException // optional );
使用不同的异常类重定向
要使用自己的异常类进行重定向,只需将 %message_redirect.exception.message_redirect.class% 参数设置为另一个实现 \CubicMushroom\MessageRedirectBundle\Exception\MessageRedirectExceptionInterface 接口的异常类。
要在一个单一请求中使用自己的异常,可以通过以下操作在服务上设置异常类...
$this->container->get('message_redirect')->setMessageRedirectExceptionClass( $class );
// Then call createRedirectWithMessage() to create the exception to throw