用户路由Laravel 5.4

时间:2017-04-15 13:59:28

标签: php laravel-routing laravel-5.4

我希望我的用户通过网址访问其个人资料编辑页面:/profile/slug/edit,其中slug表示$user->slug。 我的web.php个人:

Route::group(['middleware' => 'auth'], function () {
Route::get('/profile/{slug}', [
'uses' => 'ProfilesController@index',
'as' => 'profile'
]);
Route::get('/profile/{slug}/edit', [
'uses' => 'ProfilesController@edit',
'as' => 'profile.edit'
]);

如何从视图中调用ProfilesController@edit,如何正确传递参数?尝试:

<a href="{{route('profile', ['slug'=> Auth::user()->slug],'edit')}}">
Edit your profile</a>

2 个答案:

答案 0 :(得分:1)

以下是我将如何做到这一点..

Route::group(['middleware' => 'auth'], function () {
    Route::get('/profile/{slug}', 'ProfilesController@index')->name('profile');
    Route::get('/profile/{slug}/edit', 'ProfilesController@edit')->name('profile.edit');
});

然后在您看来,您可以使用..

<a href="{{ route('profile.edit', Auth::user()->slug) }}">Edit your profile</a>

正如您所看到的,首先我们必须给route()我们感兴趣的路线名称,在您的情况下,它是目标路线的profile.edit,我们从我们的路线文件中缺少 slug 值,因此我们将slug值作为第二个参数提供(如果有更多缺失值,则第二个参数应该是数组)。 / p>

需要一些练习和时间,但尝试不同的方法来查看是什么让您的代码更具可读性。线条的数量对计算机来说并不重要,编写代码,这样如果你想从现在开始一年或两年更改一些内容,就可以轻松阅读和理解它。

答案 1 :(得分:1)

您可以使用以下代码行

<a href="{{ route('profile.edit', ['slug' => Auth::user()->slug]) }}"> Edit your profile</a>

您的路线定义似乎没问题。

另外如果你想添加一些get params,你可以直接在作为第二个参数传递的数组中添加

<a href="{{ route('profile.edit', ['slug' => Auth::user()->slug, 'otherparam' => 'value']) }}"> Edit your profile</a>

希望这会有所帮助。 :)