Laravel 4 - 初学者愚蠢的错误

Posted

技术标签:

【中文标题】Laravel 4 - 初学者愚蠢的错误【英文标题】:Laravel 4 - beginner stupid error 【发布时间】: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

【问题讨论】:

【参考方案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,因为您的路线现在有了名称。

【讨论】:

我应该在哪里使用它? 它正在工作。我现在知道了。您可以编辑答案以在第二条路线上添加“用途”吗?谢谢

以上是关于Laravel 4 - 初学者愚蠢的错误的主要内容,如果未能解决你的问题,请参考以下文章

在 laravel 4 中找不到类控制器

使用字符串时的c ++初学者分段错误

我是 Django 的初学者,在 urls.py 中遇到语法错误

Laravel 工匠服务错误

缺少 Laravel 供应商/自动加载

路由/服务文件(laravel/node js)与简单的 html 'a href' 以便在页面之间导航