Доступ к атрибуту пользователя auth

Я нахожусь в контроллере guzzle, делая запрос к внешнему API.

Я хочу использовать идентификатор пользователя, который вошел в систему.

Я выполнял запрос с помощью static id, но теперь я хочу его динамически.

Я пробовал так:

    $science = Auth::user()->science_id;

    $client = new Client(['headers' => ['Accept' => 'application/json']]);

    $request = $client->get(
        'https://url_to_the_api/'.$science.'/degree',
        [
            'auth'          => ['client', 'secret'],
        ]

    );

    $data = $request->getBody()->getContents();

    return $data;

А у меня ошибка

500(internal server error)

и это сообщение:

"Trying to get property 'science_id' of non-object"

Что мне не хватает?

Спасибо за ваше время

Вы вошли в систему?

Rouhollah Mazarei 12.06.2019 11:51

Рухолла я ахахах

Marcelo Soares 12.06.2019 11:53

Убедитесь, что имя столбца 'science_id' в пользовательской таблице такое же.

Arun J 12.06.2019 11:53

Это Арун Дж. Кажется, он не определяет, что я вошел в систему, не знаю, почему

Marcelo Soares 12.06.2019 12:00

Где вы пишете этот код? Какой маршрут вы запрашиваете, когда запускаете этот код? Охраняется ли маршрут промежуточным программным обеспечением auth?

Cloud Soh Jun Fu 12.06.2019 12:04
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
5
52
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Если вы используете его в веб-приложении, сначала убедитесь, что пользователь уже аутентифицирован с помощью промежуточное ПО аутентификации или вручную с помощью функции Auth::check().

Или

Если вы пытаетесь выполнить это с помощью API, это не сработает, потому что в этом случае сеанс не будет поддерживаться. Вот почему токены JWT были введены для поддержания состояния приложения.

Я решил это так:

  $science = auth('api')->user()->science_id;

Спасибо за помощь!

Другие вопросы по теме