-
Notifications
You must be signed in to change notification settings - Fork 11.6k
Description
Laravel Version
10.45.0
PHP Version
8.2.18
Database Driver & Version
No response
Description
I noticed a weird issue, when a user tries to logout from my Laravel Application. Laravel updates the remember_token.
Which results in Scout updating the data on it's index, and I noticed the timestamp format is not always same.
On that update Laravel sets $user->timestamps to false which disables the casting for created_at and updated_at fields.
This line:
| $user->timestamps = false; |
Which eventually leads to inconsistant format for the timestamp fields.
Usually the format is like this: 2023-09-05T18:23:38.000000Z but, only on that instance (when Laravel updates the remember_token) the format is like this: 2023-09-05 18:23:38
When Laravel updates the User model on Logout:

When I update the User model from any other place:

Steps To Reproduce
- Start a new Laravel project with Breeze (Blade)
- Configure Laravel Scout (any driver)
- Register a User
- Login to the dashboard
- Create the
toSearchableArray()method in User model, and add add($this->created_at)
public function toSearchableArray(): array
{
dd($this->created_at);
}- Now logout from the dashboard it will show the
dd()output, (Note this 📝) - Next, from any other controller try updating a User
User::find(1)->update(['name' => "Foo Bar"]); - Run this code, it will show the
dd()output, (Note this 📝)
Compare the output of Step 6 and Step 8
Those should be different.