Как создать маршрут с slug или id - PullRequest
0 голосов
/ 24 сентября 2018

Как я могу вызвать профиль пользователя с идентификатором или слагом по маршруту?Если пользователь вызывает свой собственный профиль, он должен иметь возможность открыть его через профиль slug / {slug}. Если конфиденциальность посещенного профиля равна 3, он должен быть доступен только через идентификатор.profile / {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');

1 Ответ

0 голосов
/ 24 сентября 2018

$param параметр получит идентификатор пользователя или 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, поэтому вы не хотитеПроверьте, авторизован ли пользователь, который обращается к своему профилю.

...