Как я могу передать имя пользователя в контроллере? - PullRequest
0 голосов
/ 03 апреля 2019

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

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

@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');
    }

Ответы [ 3 ]

0 голосов
/ 03 апреля 2019

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

$username = session('username');

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

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

0 голосов
/ 03 апреля 2019

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

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

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

auth()->user()->username
0 голосов
/ 03 апреля 2019

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

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

Он вернет ожидаемые значения в виде: «usersname» и «useremail@domain.com».

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...