在 laravel 5.3 中构建 link 的正确方法
Right way to build a link in laravel 5.3
我正在尝试使用 Laravel 5.3 构建一个带有视图页面 (blade) 的动态 link。
我的做法是:
<a href=" {{ URL::to('articles') }}/{{ $article->id}}/edit">Edit></a>
这将输出正确的 url 以及我的基础 url 和其他一些 slug:http://mydomain/articles/23/edit
其中“23”是我文章的 ID。
这可行,但我想知道是否有更简洁的方法来做到这一点?
非常感谢
你可以试试这个
<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');
你可以用 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 更清洁
我建议使用命名路由!
您的 routes/web.php 文件:
Route::get('articles/{articleId}/edit', 'YourController@action')->name('article.edit');
您的 Blade-Template 文件:
<a href=" {{ route('article.edit', ['articleId' => $article->id]) }}">Edit></a>
您可以在代码中使用命名路由进行清理
在您的 app/Http/routes.php(如果是 laravel 5、laravel 5.1、laravel 5.2)或 app/routes/web .php(如果是 laravel 5.3)
Define route
Route::get('articles/{id}/edit',[
'as' =>'articles.edit',
'uses' =>'YourController@yourMethod'
]);
In Your view page (blade) use
<a href="{{ route('articles.edit',$article->id) }}">Edit</a>
使用命名路由的一个好处是,如果您将来更改 url 路由,则无需更改视图中的 href(在您的情况下)
我正在尝试使用 Laravel 5.3 构建一个带有视图页面 (blade) 的动态 link。
我的做法是:
<a href=" {{ URL::to('articles') }}/{{ $article->id}}/edit">Edit></a>
这将输出正确的 url 以及我的基础 url 和其他一些 slug:http://mydomain/articles/23/edit
其中“23”是我文章的 ID。
这可行,但我想知道是否有更简洁的方法来做到这一点?
非常感谢
你可以试试这个
<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');
你可以用 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 更清洁
我建议使用命名路由!
您的 routes/web.php 文件:
Route::get('articles/{articleId}/edit', 'YourController@action')->name('article.edit');
您的 Blade-Template 文件:
<a href=" {{ route('article.edit', ['articleId' => $article->id]) }}">Edit></a>
您可以在代码中使用命名路由进行清理
在您的 app/Http/routes.php(如果是 laravel 5、laravel 5.1、laravel 5.2)或 app/routes/web .php(如果是 laravel 5.3)
Define route
Route::get('articles/{id}/edit',[
'as' =>'articles.edit',
'uses' =>'YourController@yourMethod'
]);
In Your view page (blade) use
<a href="{{ route('articles.edit',$article->id) }}">Edit</a>
使用命名路由的一个好处是,如果您将来更改 url 路由,则无需更改视图中的 href(在您的情况下)