如何将重定向返回到 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">×</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 应用程序中的登录页面?