【问题标题】:Laravel 4 - beginner stupid errorLaravel 4 - 初学者愚蠢的错误
【发布时间】:2015-01-01 12:08:37
【问题描述】:

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

我正在研究导航栏,结构如下:

  • 导航栏包含 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

现在,一切正常,从导航栏中单击“accueil”或“liste_sites”时,它会显示我想要的内容。 但是当我在页面上时 /public/liste_sites 然后我从导航栏中再次单击它... chrome 说这个 ERR_CONNECTION_REFUSED. 我真的不明白为什么它不起作用。

我注意到当我再次点击它时,URL 会发生变化

http://localhost/mynet/public/liste_sites

https://localhost/mynet/public/liste_sites

【问题讨论】:

    标签: laravel routes navbar blade laravel-routing


    【解决方案1】:

    问题是你的路径。您应该使用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_route 助手而不是 link_to,因为您的路线现在有了名称。

    【讨论】:

    • 我应该在哪里使用它?
    • 它正在工作。我现在知道了。您可以编辑答案以在第二条路线上添加“用途”吗?谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多