Laravel 5.1 - 母版页链接中的URL

时间:2015-11-17 08:22:30

标签: php authentication laravel-5.1

我开始使用Laravel 5.1,我遇到了一个问题。

在我的路线中(正如Laravel文档建议的身份验证),我有路线angular.module('qrApp').config(['$httpProvider', '$sceDelegateProvider', function ($httpProvider, $sceDelegateProvider) { // configuring providers }]); qrApp.directive('fileModel', ['$parse', function ($parse) { // custom directive here }]); auth/login。当我在主页auth/register时一切正常,但当我在/并点击注册链接时,网址会复制auth参数,例如/auth/login

路线

/auth/auth/register

母版页导航菜单

// Authentication routes...
Route::get('auth/login', 'Auth\AuthController@getLogin');
Route::post('auth/login', 'Auth\AuthController@postLogin');
Route::get('auth/logout', 'Auth\AuthController@getLogout');

// Registration routes...
Route::get('auth/register', 'Auth\AuthController@getRegister');
Route::post('auth/register', 'Auth\AuthController@postRegister');

我可以做些什么来避免重复的网址?

注意:我正在使用XAMPP运行本地计算机,我的完整网址是 @if (!Auth::check()) <li><a href="auth/login">Login </a></li> <li><a href="auth/register">Register</a></li> @else (Auth::check()) <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">{{ Auth::user()->name }} <span class="caret"></span></a> <ul class="dropdown-menu" role="menu"> <li><a href="">Dashboard</a></li> <li><a href="auth/logout">Logout</a></li> </ul> </li> </ul> @endif (我仍在调查如何使公用文件夹消失)。如果我点击了http://localhost/myproject/public/这样的路线,请点击网址的/auth/loginmyproject文件夹。

2 个答案:

答案 0 :(得分:2)

始终使用斜杠启动链接,这样就不会根据当前路径给出相对路径。这应该可以解决你的问题:

 @if (!Auth::check())
   <li><a href="/auth/login">Login </a></li>
   <li><a href="/auth/register">Register</a></li>
 @else (Auth::check())
   <li class="dropdown">
      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">{{ Auth::user()->name }} <span class="caret"></span></a>
      <ul class="dropdown-menu" role="menu">
        <li><a href="">Dashboard</a></li>
        <li><a href="/auth/logout">Logout</a></li>
      </ul>
   </li>
   </ul>
@endif

您可能还想检查链接到实际路由而不是硬编码URL。由于Laravel5不再包含HTML illuminate/html包,因此您必须自己包含它(现在它实际上是laravelcollective/html)并且可以使用各种函数链接到您的路由。有一些不错的文档here,我所谈论的部分是"Generating URLs"

答案 1 :(得分:1)

这对Laravel来说没问题,但是你建立你的锚标签的方式。 如果您未在相对网址前添加/,则浏览器会将相对网址附加到当前网址。

解决方法是添加/,这将告诉浏览器将相对网址附加到根网址。

所以,你应该使用

<li><a href="/auth/login">Login </a></li>
<li><a href="/auth/register">Register</a></li>