我希望我的用户通过网址访问其个人资料编辑页面:/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>
答案 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>
希望这会有所帮助。 :)