【问题标题】:Right way to build a link in laravel 5.3在 laravel 5.3 中建立链接的正确方法
【发布时间】:2017-01-31 01:41:54
【问题描述】:

我正在尝试使用 Laravel 5.3 构建带有视图页面(刀片)的动态链接。

我的做法是:

<a href=" {{ URL::to('articles') }}/{{ $article->id}}/edit">Edit></a>  

这将使用我的基本 url 和其他一些 slug 输出正确的 url:http://mydomain/articles/23/edit
其中“23”是我文章的 ID。

这可行,但我想知道是否有更清洁的方法可以做到这一点?

非常感谢

【问题讨论】:

  • 这不是更干净吗?
  • URL::to() 是 Laravel 4.2 可用的方法。从 5.0 开始,您可以使用url(),以及任何Facade 类,例如URL;他们都做同样的事情,都是干净的方法。我认为你可能想多了这个相对简单的任务。

标签: php laravel blade laravel-blade


【解决方案1】:

您可以为此使用named routes

// Your route file
URL::get('articles/{articleId}/edit', 'ArticlesController@edit')->name('articles.edit');

//Your view
<a href="{{ URL::route('articles.edit', $article->id) }}">Edit</a>

更清洁的 IMO

【讨论】:

  • 感谢它有效!路由文件已经用Route::resource('articles','ArticlesController');"方法填好了
【解决方案2】:

您可以在代码中使用命名路由来清洁

在您的 app/Http/routes.php(在 laravel 5、laravel 5.1、laravel 5.2 的情况下)或 app/routes/web.php(在 laravel 5.3 的情况下)

定义路线

Route::get('articles/{id}/edit',[
             'as'   =>'articles.edit',
             'uses' =>'YourController@yourMethod'
            ]);

在您的视图页面(刀片)中使用

<a href="{{ route('articles.edit',$article->id) }}">Edit</a>

使用命名路由的一个好处是,如果您将来更改路由的 url,那么您不需要更改视图中的 href(在您的情况下)

【讨论】:

    【解决方案3】:

    你可以试试这个

    <a href="{{ url('/articles/edit',$article->id) }}"><i class="fa fa-fw fa-edit"></i></a>
    

    和你的 route.php 文件

    Route::get('/articles/edit/{art_id}', 'ArticlesController@edit');

    【讨论】:

      【解决方案4】:

      我建议使用命名路由!

      你的 routes/web.php 文件:

      Route::get('articles/{articleId}/edit', 'YourController@action')->name('article.edit');
      

      您的 Blade 模板文件:

      <a href=" {{ route('article.edit', ['articleId' => $article->id]) }}">Edit></a>  
      

      【讨论】:

      • 减号不是我的...顺便说一句,我尝试了您的方法,但由于输出等于 article.edit/id 而失败,所以不是我要找的
      • 我忘了把 name() 放在路由上,所以可能会因为这个问题而失败
      • 是的,我的评论是针对对我的回答投反对票的人。就像你说的:你需要给路由一个名字来使用 route() 助手。如果您在路线上没有名称,则可以使用 url() 帮助程序。
      猜你喜欢
      • 2020-05-13
      • 2011-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-02
      • 1970-01-01
      • 2020-01-18
      • 2013-11-12
      相关资源
      最近更新 更多