2017-03-14 21 views
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> 

検証の上に立ち往生しているようです。私はちょうどそれを確認する検証後にリターンを使用しました。

有効性が確認されていないにもかかわらず、データベースにはまだ保存されません。

答えて

1

Laravelドキュメントは言う:

更新方法を更新すべき列を表す列と値のペアの配列を期待します。

使用する$ user->それは文句を言わない、それを乗り越えると検証について何

+0

代わりに)(セーブ。 –

+0

私はそれがあなたのデータベースに既に存在するかどうかを確認するために、電子メールとユーザー名に関する独自のルールがあるからです。 – Lorav

+0

また、validate関数をデバッグして、失敗したルールを正確に表示することもできます – Lorav

関連する問題