Вызов функции-члена extension () для строки - PullRequest
0 голосов
/ 06 июля 2018

Я попытался загрузить изображение с помощью Почтальона, и изображение сохранено в предпочтительном каталоге, а полный путь сохранен в базе данных, но я получаю сообщение об ошибке

"message": "Вызов расширения функции-члена () для строки",

вот мой код

public function store(AvatarUploadRequest $request, UserService $userService) {
$user = $request->user();
try {

$file = $request->file('avatar');
$file = url("/avatars") . "/" . $user->uuid . ".jpg";
$destinationPath = "avatars";
$user->avatar = $request->file('avatar')->move($destinationPath, $file)
->getClientOriginalExtension();
$user->avatar = $file;
$user->save();
  $userService->updateAvatar($user, $file);
} 
catch (\Exception $e) {
  return jsonApiResponse([
    'avatar' => $e->getMessage(),
  ], 422);
}
return jsonApiResponseWithData($user, 201);

}

1 Ответ

0 голосов
/ 06 июля 2018

Удалите эту строку (кажется, вы не используете ее в любом случае):

->getClientOriginalExtension();

Так что это должно работать:

public function store(AvatarUploadRequest $request, UserService $userService) {
    $user = $request->user();
    try {
        $file = $request->file('avatar');
        $file = url("/avatars") . "/" . $user->uuid . ".jpg";
        $destinationPath = "avatars";
        $user->avatar = $request->file('avatar')->move($destinationPath, $file);
        $user->avatar = $file;
        $user->save();
        $userService->updateAvatar($user, $file);
    } catch (\Exception $e) {
         return jsonApiResponse([
             'avatar' => $e->getMessage(),
         ], 422);
    }
    return jsonApiResponseWithData($user, 201);
}
...