У меня проблема с настройкой имени аватара, чтобы я мог поместить его в базу данных, он показывает объект, а не имя файла, как вы можете видеть, я echo $filename
, чтобы убедиться, что у меня есть имяобраз.но когда я print_r($sanitized)
, изображение является объектом.
![enter image description here](https://i.stack.imgur.com/uMDmO.png)
Мой ожидаемый результат $sanitized
должен быть:
Array
(
[email] => superadmin@email.com
[name] => Superadmin
[phone] => 123123
[avatar] => 1_avatar1546579727.jpg
)
Код:
<code>public function updateProfile(Request $request)
{
$this->setUser($request);
$user = $this->user;
// Validate the request
$this->validate($request, [
'email' => ['sometimes', 'email', Rule::unique('users', 'email')->ignore($this->user->getKey(), $this->user->getKeyName()), 'string'],
'name' => ['nullable', 'string'],
'phone' => ['sometimes', 'string'],
'avatar' => ['sometimes', 'image', 'mimes:jpeg,png,jpg,gif', 'dimensions:min_width=500,min_height=500', 'max:2048'],
], [
'avatar.mimes' => 'Uploaded file format should be jpeg, jpg, png or gif.',
'avatar.dimensions' => 'Image should have minimum 200x200px dimensions.',
'avatar.max' => 'Maximum allowed file size is 2 MB.',
]);
if($request->hasFile('avatar')) {
$filename = $user->id.'_avatar'.time().'.'.request()->avatar->getClientOriginalExtension();
Image::make(request()->avatar)->resize(300, 300)->save( public_path('uploads/avatars/'.$filename) );
// $request->avatar = $filename;
$request['avatar'] = $filename;
}
// Sanitize input
$sanitized = $request->only([
'email',
'name',
'phone',
'avatar'
]);
echo $filename . "</br>";
echo "<pre>";
print_r( $sanitized );
echo "
"; return" "; // $ this-> user-> update ($ sanitized); // returnredirect () -> back () -> with ('success', 'Profile был обновлен.');}
EDIT 1
Я перепробовал все ваши ответы, результаты все те же. Код:
if($request->hasFile('avatar')) {
$filename = $user->id.'_avatar'.time().'.'.request()->avatar->getClientOriginalExtension();
Image::make(request()->avatar)->resize(300, 300)->save( public_path('uploads/avatars/'.$filename) );
//This is what I've tried so far below:
$request->request->add(['avatar', $filename]);
// $request->merge(['avatar' => $filename]);
// $request->avatar = $filename;
// $request['avatar'] = $filename;
}