Laravel 4 - 初学者愚蠢的错误

时间:2014-11-05 10:27:35

标签: laravel routes navbar blade laravel-routing

我正在学习Laravel并且我创建了一个项目。

我正在使用导航栏,结构如下:

  • Navbar包含2个链接:一个到根/另一个到" liste_sites"路线 liste_sites路由调用" accueil'布尔值设置为1的路由,表示我必须显示哪种信息

这里是代码: routes.php文件

Route::get('/', array('uses' => 'HomeController@accueil', 'as' => 'accueil'));
Route::get('liste_sites', 'HomeController@liste_sites');

HomeController.php文件

private function gen_accueil()
    {
        return View::make('accueil',  array('which_actif' => 0));
    }

    public function accueil() 
    {

        return $this->gen_accueil();
    }

    public function liste_sites() 
    {
        return View::make('accueil', array('which_actif' => 1));
    }

模板在代码中包含: template_mynet.blade.php文件(进入)

<nav class="navbar navbar-default">
            <div class="navbar-header">
              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              <a class="navbar-brand" href="/mynet/public">Accueil</a>
            </div>
            <div class="collapse navbar-collapse">
              <ul class="nav navbar-nav">
                @yield('navigation')
              </ul>
            </div>
          </nav>

navigation.blade.php文件

@section('navigation')

<li>{{ link_to('liste_sites', 'Liste des sites', null, ($which_actif == 1)? array('class' => 'actif'): null )}}</li>

@stop

和accueil.blade.php文件

@extends('template_mynet')

@include('navigation')

@section('content')

@if ($which_actif == 1)
    HI BOY
@endif

@stop

现在,一切正常,点击&#34; accueil&#34;或&#34; liste_sites&#34;从导航栏,它显示我想要的。 但是当我在页面上时 的 /公共/ liste_sites 然后我从导航栏再次点击它... chrome说这 ERR_CONNECTION_REFUSED。 我真的不明白为什么它不会工作。

我注意到当我再次点击它时,网址会从

更改
http://localhost/mynet/public/liste_sites

https://localhost/mynet/public/liste_sites

1 个答案:

答案 0 :(得分:0)

问题是你的道路。您应该使用URL::to()URL::route(如果您已命名路由)以使其正常工作。现在一些路径相对于当前url,因此href属性被附加到当前路径。

您可以为路线添加名称:

Route::get('/', array('uses' => 'HomeController@accueil', 'as' => 'accueil'));
Route::get('liste_sites', array('uses' => 'HomeController@liste_sites', 'as' => 'lists_sites');

现在你可以使用

<a class="navbar-brand" href="{{ URL::route('accueil') }}">Accueil</a>

而不是link_to您现在可以使用link_to_route帮助器,因为您的路线现在已经有了名称。