如何在路径上用ID或来调用用户的个人资料? 如果用户调用自己的个人资料,则应该可以通过slug个人资料/ {slug}打开它 如果访问的个人资料的隐私为3,则只能通过ID进行访问。个人资料/ {id} 在不同的隐私中,应该只能通过子弹调用它。
我尝试了代码,但不幸的是它不起作用。
public function index($param)
{
$user = User::firstOrFail();
if(Auth::user() === $user){
$user = User::where('slug', $param)->first();
}elseif ($user->profile->privacy === 3){
$user = User::where('id', $param)->first();
}else{
$user = User::where('slug', $param)->first();
}
}
路线:
Route::get('/profile/{param}', 'Profile\ProfilesController@index')->name('profile');
答案 0 :(得分:2)
$param
参数将收到用户ID或Slug,因此请尝试以下代码:
public function index($param)
{
$user = User::where('slug', $param)->first();
if($user)
{
if($user->profile->privacy === 3)
{
// This user profile cannot access via slug
}
// User Accessible via slug
}
else
{
$user = User::where('id', $param)->first();
}
}
可以通过slug访问用户自己的个人资料和不在3个个人资料中的隐私级别,因此您不必检查身份验证用户是否正在访问自己的个人资料。