ユーザーの編集機能でupdateに関するエラーが発生しました。

実現したいこと

ユーザー編集機能を作成しています。
updateメソッドを使い、ユーザー編集を行っているのですが、恐らくupdated_atだと思うのですが、データが代入できないか何かでエラーが発生したのですが、これはtimestampのようなものをupdateメソッド内にも記述する必要があるのでしょうか?

発生している問題・エラーメッセージ

SQLSTATE[22007]: Invalid datetime format: 1292 Truncated incorrect INTEGER value: 'update' (Connection: mysql, SQL: update `users` set `name` = TEST, `self_introduction` = test マイページ改行テスト, `email` = test1@example.com, `post_code` = 0000000, `address` = 東京都千代田区千代田, `telephone_number` = 00000000000, `password` = $2y$10$fF.QNJZTjkf0rW3LGWHkkOKhztOsjcTH2XhVlsxEtpo1s8M7HKpmS, `users`.`updated_at` = 2023-09-11 14:40:09 where `id` = update)

該当のソースコード

UserController

1public function update(Request $request, $id) 2 { 3 $user = Auth::user(); 4 User::where('id', $id) 5 ->update([ 6 'name' => $user['name'], 7 'self_introduction' => $user['self_introduction'], 8 'email' => $user['email'], 9 'post_code' => $user['post_code'], 10 'address' => $user['address'], 11 'telephone_number' => $user['telephone_number'], 12 'password' => Hash::make($user['password']), 13 ]); 14 }

User.php

1<?php 2 3namespace App\Models; 4 5// use Illuminate\Contracts\Auth\MustVerifyEmail; 6use Illuminate\Database\Eloquent\Factories\HasFactory; 7use Illuminate\Foundation\Auth\User as Authenticatable; 8use Illuminate\Notifications\Notifiable; 9use Laravel\Sanctum\HasApiTokens; 10 11class User extends Authenticatable 12{ 13 use HasApiTokens, HasFactory, Notifiable; 14 15 public function posts() 16 { 17 return $this->hasMany('App\Post'); 18 } 19 public function rooms() 20 { 21 return $this->hasMany('App\Room'); 22 } 23 public function messages() 24 { 25 return $this->hasMany('App\Message'); 26 } 27 /** 28 * The attributes that are mass assignable. 29 * 30 * @var array<int, string> 31 */ 32 protected $fillable = [ 33 'name', 34 'email', 35 'post_code', 36 'address', 37 'telephone_number', 38 'password', 39 ]; 40 41 /** 42 * The attributes that should be hidden for serialization. 43 * 44 * @var array<int, string> 45 */ 46 protected $hidden = [ 47 'password', 48 'remember_token', 49 ]; 50 51 /** 52 * The attributes that should be cast. 53 * 54 * @var array<string, string> 55 */ 56 protected $casts = [ 57 'email_verified_at' => 'datetime', 58 'password' => 'hashed', 59 ]; 60}

web.php

1Auth::routes(); 2Route::resource('user', App\Http\Controllers\UserController::class); 3Route::get('/users/{id}', [App\Http\Controllers\UserController::class, 'show'])->name('user.show'); 4Route::get('/user/edit/{id}', [App\Http\Controllers\UserController::class, 'edit']); //ユーザー編集 5Route::post('/user/update/{id}', [App\Http\Controllers\UserController::class, 'update']); //ユーザーUPDATE

試したこと

updateメソッドを使わない方法も試したのですが、こちらもsave()メソッドが見つからないなどと言った経緯で、ユーザー情報を編集できませんでした。

補足情報(FW/ツールのバージョンなど)

php: 8.1.21

コメントを投稿

0 コメント