Laravel 即使在登录后也重定向到每个页面上的登录
Laravel redirects to login on every page even after logging in
我在 Laravel 中遇到问题,因为我删除了 Entrust。
一切正常,直到我尝试安装 Entrust。我删除了它,因为它一直说下面的消息与这个问题相同
Laravel cache store does not support tagging
我删除了与 Entrust 有关的所有内容,并删除了我必须进行的所有更改,但从那时起,每当我在登录后尝试转到另一个页面时,它都会重定向回登录页面。我重新登录,它会按应有的方式重定向到仪表板,但只要我转到另一个页面,它就会将我重定向回重新登录。
有什么解决办法吗?
更新
我想我已经缩小到问题范围了。
我创建了一个新项目并重新开始。我创建了 Auth,创建了几个测试控制器和视图。
我正常登录,然后被重定向到家庭控制器。然后我转到另一个页面,它加载正常。这些视图使用 views/layouts/app.blade.php 中的默认布局。一旦我将其更改为自定义布局,问题就会再次出现,但如果我将其更改回应用程序就可以了。blade.php
这是我的新默认值。blade.php但我不明白为什么它不再起作用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>@yield('title')</title>
<link rel="icon" type="image/png" href="public/css/favicon-32x32.png" sizes="32x32">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/themes/smoothness/jquery-ui.css">
{{ HTML::style('css/bootstrap.css') }}
@if (!empty($styles))
@foreach($styles as $style)
{{ HTML::style($style . '.css') }}
@endforeach
@endif
{{ HTML::style('css/app.css') }}
{{ HTML::style('css/media.css') }}
</head>
<body class="{{ $body_class or '' }}">
<div class="wrapper">
@include('layouts.header')
@yield('content')
<div class="push"></div>
</div>
<div class="footer navbar-primary">
<div class="row">
<div class="col-xs-12">
<footer>
<p>© Copyright @php echo date('Y'); @endphp Axminster Tools & Machinery</p>
</footer>
</div>
</div>
</div>
<script>
window.website_url = '{{ URL::to('/') }}';
</script>
{{ HTML::script('assets/src/jquery/dist/jquery.min.js') }}
{{ HTML::script('assets/src/jquery-ui/jquery-ui.min.js') }}
{{ HTML::script('js/bootstrap.min.js') }}
{{ HTML::script('js/validate.js') }}
@if(isset($jsVars))
<script>
@foreach($jsVars as $key => $val)
var {{ $key }} = {{ $val }};
@endforeach
</script>
@endif
<script>
$(function() {
$("#searchform").submit(function(e) {
$("#searchform").attr("action", "/search/term/" + encodeURI($("#keywords").val()));
});
});
</script>
@if (!empty($scripts))
@foreach($scripts as $script)
{{ HTML::script($script . '.js') }}
@endforeach
@endif
</body>
</html>
终于找到问题了
完成新安装后,我测试了 Auth 并且它有效。一旦我复制了一些模板文件,我发现问题再次出现。查看模板布局文件后,我发现我正在使用它进行注销 link
<a href="{{ Auth::logout() }}">Change password</a>
我在学习的头几天就这样做了 Laravel 以前从来没有问题...不知道为什么。
我把它改成了这个,一切都按预期工作
<a href="{{ url('/logout') }}" onclick="event.preventDefault(); document.getElementById('logout-form').submit();">Logout</a>
<form id="logout-form" action="{{ url('/logout') }}" method="POST" style="display: none;">
{{ csrf_field() }}
</form>
我在 Laravel 中遇到问题,因为我删除了 Entrust。
一切正常,直到我尝试安装 Entrust。我删除了它,因为它一直说下面的消息与这个问题相同
Laravel cache store does not support tagging
我删除了与 Entrust 有关的所有内容,并删除了我必须进行的所有更改,但从那时起,每当我在登录后尝试转到另一个页面时,它都会重定向回登录页面。我重新登录,它会按应有的方式重定向到仪表板,但只要我转到另一个页面,它就会将我重定向回重新登录。
有什么解决办法吗?
更新
我想我已经缩小到问题范围了。
我创建了一个新项目并重新开始。我创建了 Auth,创建了几个测试控制器和视图。
我正常登录,然后被重定向到家庭控制器。然后我转到另一个页面,它加载正常。这些视图使用 views/layouts/app.blade.php 中的默认布局。一旦我将其更改为自定义布局,问题就会再次出现,但如果我将其更改回应用程序就可以了。blade.php
这是我的新默认值。blade.php但我不明白为什么它不再起作用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>@yield('title')</title>
<link rel="icon" type="image/png" href="public/css/favicon-32x32.png" sizes="32x32">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/themes/smoothness/jquery-ui.css">
{{ HTML::style('css/bootstrap.css') }}
@if (!empty($styles))
@foreach($styles as $style)
{{ HTML::style($style . '.css') }}
@endforeach
@endif
{{ HTML::style('css/app.css') }}
{{ HTML::style('css/media.css') }}
</head>
<body class="{{ $body_class or '' }}">
<div class="wrapper">
@include('layouts.header')
@yield('content')
<div class="push"></div>
</div>
<div class="footer navbar-primary">
<div class="row">
<div class="col-xs-12">
<footer>
<p>© Copyright @php echo date('Y'); @endphp Axminster Tools & Machinery</p>
</footer>
</div>
</div>
</div>
<script>
window.website_url = '{{ URL::to('/') }}';
</script>
{{ HTML::script('assets/src/jquery/dist/jquery.min.js') }}
{{ HTML::script('assets/src/jquery-ui/jquery-ui.min.js') }}
{{ HTML::script('js/bootstrap.min.js') }}
{{ HTML::script('js/validate.js') }}
@if(isset($jsVars))
<script>
@foreach($jsVars as $key => $val)
var {{ $key }} = {{ $val }};
@endforeach
</script>
@endif
<script>
$(function() {
$("#searchform").submit(function(e) {
$("#searchform").attr("action", "/search/term/" + encodeURI($("#keywords").val()));
});
});
</script>
@if (!empty($scripts))
@foreach($scripts as $script)
{{ HTML::script($script . '.js') }}
@endforeach
@endif
</body>
</html>
终于找到问题了
完成新安装后,我测试了 Auth 并且它有效。一旦我复制了一些模板文件,我发现问题再次出现。查看模板布局文件后,我发现我正在使用它进行注销 link
<a href="{{ Auth::logout() }}">Change password</a>
我在学习的头几天就这样做了 Laravel 以前从来没有问题...不知道为什么。
我把它改成了这个,一切都按预期工作
<a href="{{ url('/logout') }}" onclick="event.preventDefault(); document.getElementById('logout-form').submit();">Logout</a>
<form id="logout-form" action="{{ url('/logout') }}" method="POST" style="display: none;">
{{ csrf_field() }}
</form>