使用数据重定向到另一个控制器

n0p*_*0pe 2 php fuelphp

我有一个action_register试图注册新用户的功能.如果成功,我希望将用户转发到登录表单(通过此处显示action_login).不过,我也想送$message$message_type给说像"你的账户已经建立,请登录"登录视图.

什么是最好的方法.最好的,我的意思是可维护,清洁和安全.

我的想法到现在为止:

  • 将数据发布到路由到action_login并重定向的URL .
  • 找到一种方法将数据直接发送到控制器方法并action_login一如既往地渲染.

ara*_*ara 5

你实际上不需要做任何代码片段来设置会话消息,Fuel php提供了一个非常好的界面来处理这样的功能.它的核心会话类是我们需要按照文档使用的方式.

在你的情况下,让我们说你需要从register_action重定向到login_action,并在注册过程成功后,然后只需设置如下的flash消息

Session::set_flash('success', 'Your account has been successfully created !'); 
Run Code Online (Sandbox Code Playgroud)

稍后在登录的视图文件中,您可以使用以下代码来获取所需的Flash消息.有些像这样

<?php if (Session::get_flash('success')): ?>
    <div class="alert-box info">
        <?php echo  Session::get_flash('success') ; ?>

    </div>
<?php endif; ?>
Run Code Online (Sandbox Code Playgroud)

您也可以通过使用如下所示的delete_flash方法删除上述示例中的"成功"会话消息

Session::delete_flash('success');
Run Code Online (Sandbox Code Playgroud)

要了解有关会话课程的更多信息,您可以从以下链接中学习

FuelPhp会话类docuementation

而且为了重定向用户你不需要编写任何新的PHP代码,Fuel php也为它提供了一个很好的接口,它的'Response'类有为你定义的方法

以下是在任何控制器操作中重定向用户的方法

Response::redirect('yourRouteName');
Run Code Online (Sandbox Code Playgroud)

它总是一个很好的做法,可以利用框架中定义的类,这些类实际上是为了让开发人员轻松生活而定义的.

在编程方法中面向对象,特别是当使用高质量的OOP MVC框架(如fuelPhp )时,通过为您提供对现成的Getter和setter的访问,可以防止您重新发明轮子(DRY).

希望这可以帮助