Необходимо создать субдомен типа URL на основе имени пользователя - PullRequest
1 голос
/ 19 сентября 2019

Я отправляю этот вопрос после двух недель борьбы за это. Я работаю над проектом Laravel , и у меня застряла функция, которая мне нужна в проекте.

На самом деле я хочу, чтобы динамическая генерация URL для каждого пользователя на основе его имени пользователя.Как это делает slack.

Допустим, мой домен example.com И предположим, что один пользователь регистрируется с именем пользователя ryan, тогда я хочу, чтобы URL был ryan.example.com И когда сайт работает с этим типом URL, это должно работать для того, что вошел в систему пользователя.Поэтому мне также понадобится какой-то механизм в моем проекте Laravel, который может получить мне идентификатор пользователя или другие данные пользователя из этого сегмента URL.

Что я пробовал до сих пор: я поместил следующий код в Route.php Laravelфайл:

Route::group(['domain' => '{account}.example.com'], function () {
   Route::get('/', function ($account) {
        return $account;
    });
});

1 Ответ

0 голосов
/ 19 сентября 2019

Laravel имеет поддержку поддомен при маршрутизации из коробки.Из официальной документации

Route::domain('{account}.myapp.com')->group(function () {
    Route::get('user/{id}', function ($account, $id) {
        //
    });
});

Учетная часть не имеет жесткого кода.Это динамично.Таким образом, вы можете поместить различную логику в это.Например, если я хочу получить доступ к ryan.example.com, вам нужно проверить, действительно ли я Райан или нет.Вы также можете использовать промежуточное ПО, как и для других маршрутов.

Также убедитесь, что вы можете использовать переменную $ account в функциях.Если вы хотите, вы можете использовать эту учетную запись $, чтобы получить «идентификатор пользователя или другие данные пользователя из этого сегмента URL».

Надеюсь, этого ответа будет достаточно, чтобы вы начали.Если вы застряли где-то, поделитесь с нами еще раз какой-либо конкретной проблемой, и мы постараемся вам помочь.

...