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

Имя пользователя хранится в моем сеансе. Я работаю над модулем управления отпусками. В таблице модуля «Мой отпуск» есть эти поля Имя пользователя, тип отпуска, продолжительность, статус и действие. Помимо имени пользователя, все детали, которые я могу вставить и перечислить в виде списка. Но мое имя пользователя хранится в сеансе. Как я могу получить его из сеанса и сохранить в базе данных в поле имени пользователя??

Код в моем файле просмотра

@if (Session::has('key'))
    <?php $username = Session::get('key')['username']; ?>
@endif

    <input type = "hidden" name = "username" value = "<?php echo $username ?>">

Код в моем файле контроллера

 public function leaveApplication(Request $request)
    {
        $leave = new LeaveManagement();

        $leave->username = $request->get('username');
        $leave->leaveType = $request->get('leaveType');
        $leave->startDate = $request->get('startDate');
        $leave->endDate = $request->get('endDate');
        $leave->fromLeave = $request->get('fromLeave');
        $leave->fromHalfDayLeaveType = $request->get('fromHalfDayLeaveType');
        $leave->toLeave = $request->get('toLeave');
        $leave->toHalfDayLeaveType = $request->get('toHalfDayLeaveType');
        $leave->fullDayLeave = $request->get('fullDayLeave');
        $leave->typeOfLeave = $request->get('typeOfLeave');
        $leave->reasonForLeave =$request->get('reasonForLeave');
        $leave->status = 'Pending';

        $leave->save();

        return redirect('leave');
    }
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать 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-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
1
0
185
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

После входа в систему Auth сохраняет в нем поля пользовательской таблицы. Вы можете получить к нему доступ так -

echo Auth::user()->name or echo Auth::user()->email

Он вернет ожидаемые значения: «usersname» и «[email protected]».

Если вы не используете Auth, вы можете получить имя пользователя из своего сеанса и сохранить его в БД следующим образом:

$user = session()->get('user')
$username = $user->username;

$leave = new LeaveManagement();
$leave->username = $username;
$leave->save();

Надеюсь, что это поможет вам.

Я не использую Auth, подождите, я задам код под сомнение

John_rees 03.04.2019 14:05

Пожалуйста, проверьте сейчас.

Suniti Yadav 03.04.2019 14:20

Я получил эту ошибку. Попытка получить свойство «имя пользователя» не-объекта

John_rees 03.04.2019 14:58
Ответ принят как подходящий

Вы можете использовать глобальный помощник сеанса Laravel: session(keyName).
Чтобы получить имя пользователя из сеанса и сохранить его в базе данных:

$username = session('username');

$leave = new Leave();
$leave->username = $username;
$leave->save();

Для получения дополнительной информации о сеансе Laravel см. Сессия Laravel.

Не работает .. Что я должен написать в своем файле лезвия ??

John_rees 03.04.2019 14:13

Вы можете передать переменную имени пользователя, например return view('view.name', ['username' => $username]). Затем в лезвии вы можете использовать переменную {{$username}}.

gunjit 03.04.2019 19:53

вы можете получить объект из своего сеанса и получить доступ к его атрибутам. Что-то вроде:

$user = session()->get('user')
$username = $user->username

или после входа в систему вы можете получить доступ к имени пользователя вашего пользователя с помощью:

auth()->user()->username

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