如何使用 slug 或 id 创建路由

How to create a route with slug or id

如何通过路线调用带有 ID 或 slug 的用户个人资料? 如果用户调用他自己的配置文件,它应该能够通过 slug profile / {slug} 打开它 如果访问的配置文件的隐私为 3,则只能通过 ID 访问它。简介/ {id} 在不同的隐私中,它应该只能通过slug调用。

我尝试了代码,但不幸的是它不起作用。

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');

$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();
    }
}

不在 3 个配置文件中的用户自己的配置文件和隐私级别可通过 slug 访问,因此您不想检查是否是 auth 用户访问他自己的配置文件。