[bug] Wrong cast type
DubStepMad opened this issue · 2 comments
Describe the bug
After following the v4.x upgrade guide I am presented with the following error:
htmlspecialchars(): Argument #1 ($string) must be of type string, Illuminate\Database\Eloquent\Casts\Attribute given
Now the new method profilePhotoUrl
is called in blade like this: {{ Auth::user()->profilePhotoUrl() }}
which is throwing the error.
User Model Method:
/**
* Get the URL to the user's profile photo.
*
*/
public function profilePhotoUrl(): Attribute
{
return filter_var($this->profile_photo_path, FILTER_VALIDATE_URL)
? Attribute::get(fn() => $this->profile_photo_path)
: $this->getPhotoUrl();
}
To Reproduce
Steps to reproduce the behavior:
- Follow upgrade guide from v3 to v4
Expected behavior
For the avatar to be displayed as previously it did.
Environment context
- Socialstream version: 4.1.3
- Jetstream stack: Livewire
- Laravel version: 10.20.0
- PHP version: 8.2
Little digging around and try this instead in the User Model and works as intended.
Not sure if is something to do with versions, but the Jetstream version I have is: v3.3.3
/**
* Get the URL to the user's profile photo.
*
*/
public function profilePhotoUrl()
{
return $this->profile_photo_path
? Storage::disk($this->profilePhotoDisk())->url($this->profile_photo_path)
: $this->defaultProfilePhotoUrl();
}
@DubStepMad can you change the code in the blade file to {{ Auth::user()->profile_photo_url }}
to see if this fixes the issue for you? AFAIK that's what the originally Jetstream templates should be using in v3.3.3 and v4.x of Socialstream