我正在学习Laravel并且我创建了一个项目。
我正在使用导航栏,结构如下:
这里是代码: 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
答案 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
帮助器,因为您的路线现在已经有了名称。