2016-09-22 20 views
1

Laravel 5.3でビューページ(ブレード)を使用して動的リンクを構築しようとしています。laravelでリンクを作成する正しい方法5.3

私のアプローチは、次のとおりです。

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

が、その私のベースURLや他のいくつかのスラグと出力右のURLを以下となります。http://mydomain/articles/23/edit
「23」は、私の記事のIDです。

これはうまくいきますが、もっとクリーンな方法があるのでしょうか?

多くのおかげ

+0

はこのクリーナーではありませんか? –

+2

URL :: to()はLaravel 4.2で利用可能なメソッドです。 5.0以降、 'URL'のような' Facade'クラスと一緒に 'url()'を使うことができます。彼らはどちらも同じことをしており、どちらもきれいなアプローチです。私はあなたがこの比較的簡単な作業を思慮深く考えているかもしれないと思います。 –

答えて

8

あなたはIMOはるかクリーナーこの

// Your route file 
URL::get('articles/{articleId}/edit', '[email protected]')->name('articles.edit'); 

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

ため

+0

ありがとうございます!ルートファイルは 'Route :: resource( 'articles'、 'ArticlesController'); ' "メソッド – JahStation

+0

を使用して既に入力されています。ルート名の 'resource'が既に存在しています) – PeterPan666

0

あなたはこの

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

とあなたのファイル route.php

ルート::取得( '/記事/編集/ {art_id}' で試すことができ、 'ArticlesController @ edit');

-1

named routesを使用することができます私は名前のルートで動作するようにお勧めします!

あなたのルート/ web.phpファイル:

Route::get('articles/{articleId}/edit', '[email protected]')->name('article.edit'); 

ブレード-テンプレートファイル:

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

Downvote説明なし。よくやった;) – Sebastian

+0

マイナスは私のものではない...ところで、私はあなたのアプローチを試してみましたが、article.edit/idと等しい出力で失敗しました。 – JahStation

+0

私はルートに名前()を入れるのを忘れてしまったので、おそらくこの問題で失敗します。 – JahStation

1

アプリでは、コード

できれいにちなんで名づけられたルートを使用することができます/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' =>'[email protected]' 
      ]); 

という名前のルートを使用しての

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

一つの利点を使用しますが、ルートのURLを変更した場合であります将来(あなたの場合)ビューでhrefを変更する必要はありません

関連する問題