laravel update注册用户

时间:2018-05-17 12:40:18

标签: php laravel

我最近开始在Laravel工作,这是我的第一个Framework。我有PHP的经验,但我现在有点失落。

我使用了laravel附带的默认auth。但我正在尝试创建一个函数来编辑已注册的用户。

我不太清楚数据是如何从表单到达数据库的。

我的表格:(没有输入所有输入)

@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 :(得分:1)

您需要为行动创建路线。 转到Route::http-verb('url name',"Controller name@Controller Method name"); (laravel 5.3或更高版本)并添加您的路线结构。

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

这是您必须在web.php文件中添加的路径

ProfileController

我假设你有一个名字为edit_profile的控制器,你在里面有{{ url('/edit-profile') }} 方法。

app/Http/routes.php

将上述代码添加到操作属性。

如果您使用的是laravel 5.2或旧版本,则路由配置位于{{1}}内。