如何使用或ID创建路线

时间:2018-09-24 17:18:51

标签: laravel routes difference

如何在路径上用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');

1 个答案:

答案 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个个人资料中的隐私级别,因此您不必检查身份验证用户是否正在访问自己的个人资料。