@serhiops
Python/JavaScript/C++

Как передать обьект модели пользователя в шаблон?

Например, нужно реализовать систему добавления комментариев к какой-либо публикации. Чтобы не перезагружать каждый раз страницу, использую ajax. Для того, чтобы добавить комменатрий в базу данных нужен id пользователя, как можно его получить внутри шаблонизатора blade, чтобы сформировать нужный запрос, или как получить доступ к нему уже в контроллере? Я видел Passport и Sanctum, но не уверен, что это именно то, что нужно. В качетсве временной затычки делаю так:
@prepend('js')
    <script>
            const id = "{{ Auth::user()->id }}";
    </script>
@endprepend
  • Вопрос задан
  • 89 просмотров
Решения вопроса 1
delphinpro
@delphinpro Куратор тега Laravel
frontend developer
поэтому использую ajax. Как я понял, в контроллере нельзя получить сведения о пользователе, если данные передаются таким споссобом

Дайте угадаю. Конфигурация по умолчанию, и вы делаете запрос на роут /api/blabla
Только вот /api по умолчанию предлагается использовать для stateless запросов.
Можете использовать другой роут, например /ajax/bla, тогда все запросы будут проходить через группу миддлвэров web и стартовать сессию.
Или исправить RouteServiceProvider

Route::prefix('api')
    // ->middleware('api')
    ->middleware('web')
    ->group(base_path('routes/api.php'));


B тогда у вас в контроллере, вызываемом через аякс, будет текущая сессия, а значит и Auth::user() будет содержать текущего пользователя.

PS Passport и Sanctum тут совершенно не нужны.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы