我最近开始在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',
];
我的下一步是制作一条路线,将数据传送给控制器。但我不知道这条路线会是什么样子。
答案 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}}内。