繁体   English   中英

laravel更新注册用户

[英]laravel update registered user

我最近开始在我的第一个Framework Laravel中工作。 我有使用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',
];

我的下一步将是进行路由,以将数据发送到控制器。 但我看不出这条路线的样子。

您需要为操作创建一个路线。 转到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');

我假设你有名称的控制器ProfileController和你里面有edit_profile方法。

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

将以上代码添加到动作属性。

如果您使用的是laravel 5.2或旧版本,则路由配置位于app/Http/routes.php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM