如何将重定向返回到 Laravel 中的模式?

Posted

技术标签:

【中文标题】如何将重定向返回到 Laravel 中的模式?【英文标题】:How can I return redirect back to a modal in Laravel? 【发布时间】:2015-07-11 14:10:07 【问题描述】:

我有一个模式,当我的用户点击登录时会触发它。


逻辑

如果认证失败,我想重定向回这个模态。

考虑到这一点,我想重新定向:

回到我的主页 触发此模式 在那里闪现我的会话。

html

按钮

<a class="btn btn-default" id="btn-login" data-toggle="modal" data-target="#loginModal">Login</a>

模态

<!--Login Modal-->
<div class="light-skin modal fade" id="loginModal" tabindex="-1" role="form" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h4 class="modal-title">Login here</h4>

        -- Session     --
         @include('layouts.session')


      </div>
      <div class="modal-body">
        <form class="login-form" role="form" method="post" action="/">
          <div class="form-group">
            <label for="username">Username</label>
            <input type="text" class="form-control"  id="username" name="username" placeholder="Enter Username" required>
          </div>
          <div class="form-group">
            <label for="password">Password</label>
            <input type="password" class="form-control" id="password" name="password" placeholder="Enter Password" required>
          </div>
          <button type="submit" class="btn btn-primary">Login</button>

          !! Form::token() !!
          </form>

      </div>
    </div><!-- /.modal-content -->
  </div><!-- /.modal-dialog -->
</div><!-- /.modal -->

AccountController : postSignIn 函数,最后...

if($auth) 
    return Redirect::to('/dist')
    ->with('success','You have been successfully logged in.')
    ;

else 

    $url = URL::to('/').'#loginModal';

    return Redirect::to($url)
    ->with('error','Username/Password Wrong or account has not been activated !')
    ->withInput(Input::except('password'))
    ->withErrors($validator);

没有什么是触发器。任何提示任何人?

【问题讨论】:

模态框是通过javascript触发的吗?如果是这样,您需要在页面加载时通过 Javascript 来完成。 我可以看到的 2 个选项:1. 使用某种标志/会话变量重新加载页面,该变量指定应打开模式或 2. 通过 ajax 执行您的后端工作,但实际上从来没有关闭模式/重定向页面。 【参考方案1】:

感谢 @Tim Lewis@Kryten 为我指明了正确的方向。

我确信有不止一种方法可以做到这一点,但这里我如何让我的工作。

<?php $error = Session::get('error');  ?>

// If there is error, the modal will be trigger.
@if(!empty($error) )
<script>
$(function() 
    $('#loginModal').modal('show');
);
</script>
@endif

例如:http://jsfiddle.net/bheng/6xyudLs8/

【讨论】:

以上是关于如何将重定向返回到 Laravel 中的模式?的主要内容,如果未能解决你的问题,请参考以下文章

如何将所有访客请求重定向到 Laravel 应用程序中的登录页面?

Laravel - 使用变量重定向到树枝页面

使用ajax重定向到Laravel中的特定页面

如何从本地存储中获取每个用户在 laravel 6 中登录的数据?

将重定向发送到 JSP 中的相对路径?

Linux 第三天 重定负管道符环境变量