:
<li>
<a href="{!! route('user.show', Auth::user()->username) !!}">My Profile</a>
</li>
的UserController的@ show方法被調用。
<?php
// routes.php
Route::get('profile/{username}', '[email protected]')->name('user.show');
// UserController.php
public function show($username)
{
$user = User::whereUsername($username)->first();
return view('user.show', compact('user'));
}
並將查看響應返回給用戶。
@Update
如果你需要的就是重新定向控制到UserController中@ show方法,你可以這樣做:
<li>
<a href="{!! route('user.profile', Auth::user()->username) !!}">My Profile</a>
</li>
<?php
// routes.php
Route::get('profile/{username}', function ($username) {
return redirect()->route('user.show', Auth::id());
})->name('user.profile');
現在如果你想定製UserController中@ show動作:
<li>
<a href="{!! route('user.profile', Auth::user()->username) !!}">My Profile</a>
</li>
UserController @ show方法被調用。
<?php
// routes.php
Route::resource('user', 'UserController', ['except' => ['show']);
Route::get('profile/{username}', '[email protected]')->name('user.profile');
現在您可以刪除UserController @ show方法,如果您想要或更改要顯示的配置文件方法名稱。
// UserController.php
public function profile($username)
{
$user = User::whereUsername($username)->first();
return view('user.show', compact('user'));
}
我沒有一個頁面調用輪廓。我必須把它發送給用戶。顯示頁面 –
我不確定你的意思。我的代碼只會重定向用戶,並最終使用您的問題中的配置文件/用戶名路線。 – Devon