Laravel обновить зарегистрированного пользователя - PullRequest
0 голосов
/ 17 мая 2018

Я недавно начал работать в Ларавеле, мой первый Framework. У меня есть опыт работы с PHP, но я немного растерялся.

Я использовал auth по умолчанию, который идет с laravel. Но я пытаюсь создать функцию для редактирования зарегистрированных пользователей.

Я не совсем понимаю, как данные попадают в базу данных из формы.

Моя форма: (не введены все данные)

@isset($user)
<form method="POST" action="{{ WHAT GOES HERE?? }}">
@csrf
{{--name--}}
<div class="form-group row">
    <label for="name" class="col-md-4 col-form-label text-md-right">{{ __('Name') }}</label>

    <div class="col-md-6">
        <input id="name" type="text" class="form-control{{ $errors->has('name') ? ' is-invalid' : '' }}" name="name" value="{{ $user->name }}" required autofocus>
    </div>
</div>

{--last name--}}
<div class="form-group row">
    <label for="lastname"
           class="col-md-4 col-form-label text-md-right">{{ __('Last Name') }}</label>

    <div class="col-md-6">
        <input id="lastname" type="text"
               class="form-control{{ $errors->has('lastname') ? ' is-invalid' : '' }}" name="lastname" value="{{ $user->lastname }}" required autofocus>
    </div>
</div>
<div class="form-group row mb-0">
    <div class="col-md-6 offset-md-4">
        <button type="submit" class="btn btn-primary">
            {{ __('Edit user') }}
        </button>
    </div>
</div>

Я еще не проложил маршрут, так как не знаю, как именно. Или если это даже нужно.

Мой контроллер:

public function edit_profile($userId, Request $request)
    {
        $this->isAllowed($userId, true);
        $userProfile = User::findOrFail((int)$userId);


        //TODO validation
        //TODO update user model + save to db

        $userProfile->update();

        return view('user/edit_profile', [
            /* $ */
            'user' => $userProfile,
        ]);
    }

Как указано; Я знаю, что должно произойти. Я просто не знаю и не понимаю как.

И, наконец, мой user.php

protected $fillable = [
'name',
'lastname',
'email',
'password',
'mobile_number',
'date_of_birth',
];

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

1 Ответ

0 голосов
/ 17 мая 2018

Вам нужно создать маршрут для вашего действия.Перейдите к routes->web.php (laravel 5.3 или выше) и добавьте структуру своего маршрута.

Route::http-verb('url name',"Controller name@Controller Method name");

Это маршрут, который вы должны добавить в свой файл web.php

Route::post('edit-profile', 'ProfileController@edit_profile');

IЯ предполагаю, что у вас есть контроллер с именем ProfileController, а внутри у вас есть метод edit_profile.

{{ url('/edit-profile') }}

добавьте приведенный выше код к атрибуту действия.

Если вы используете laravel 5.2или старая версия конфигурации маршрутов находится внутри app/Http/routes.php.

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