0
私はlaravelを初めて使っています。現在ログインしているユーザーの設定を変更しようとしています。Laravelは現在のauthedユーザーの設定を更新します
ここに私のコードです。
コントローラー:
use App\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
public function postUpdateAccount(Request $request)
{
$this->validate($request, [
'username' => 'required|max:50|unique:users',
'email' => 'required|email|unique:users',
'first_name' => 'required|max:50',
'last_name' => 'required|max:100',
'password' => 'required|min:4'
]);
$user = Auth::user();
$user->username = $request['username'];
$user->first_name = $request['first_name'];
$user->last_name = $request['last_name'];
$user->email = $request['email'];
$user->password = bcrypt($request['password']);
$user->update();
}
ブレード:
<form action="{{route('account.update')}}" method="post">
{{csrf_field()}}
<label for="username">Username:</label><input class="form-control" type="text" name="username" value="{{$user->username}}" placeholder="Username" autocomplete="off"><br>
<label for="first_name">First Name:</label><input class="form-control" type="text" name="first_name" value="{{$user->first_name}}" placeholder="First Name"><br>
<label for="last_name">Last Name:</label><input class="form-control" type="text" name="last_name" value="{{$user->last_name}}" placeholder="Last Name"><br>
<label for="email">Email Address:</label><input class="form-control" type="email" name="email" value="{{$user->email}}" placeholder="Email Address"><br>
<label for="password">New Password:</label><input class="form-control" type="password" name="password" placeholder="New Password" style="background-image:><br>
<small>You must enter your current password to save any settings. If you do not want to change your password then just add your current password to the "New Password" field.</small>
<br>
<label for="current_password">Current Password:</label><input class="form-control" type="password" name="current_password" placeholder="Current Password" autocomplete="off"><br>
<button type="submit" class="btn btn-primary">Save Changed</button>
検証の上に立ち往生しているようです。私はちょうどそれを確認する検証後にリターンを使用しました。
有効性が確認されていないにもかかわらず、データベースにはまだ保存されません。
代わりに)(セーブ。 –
私はそれがあなたのデータベースに既に存在するかどうかを確認するために、電子メールとユーザー名に関する独自のルールがあるからです。 – Lorav
また、validate関数をデバッグして、失敗したルールを正確に表示することもできます – Lorav