PHP Laravel 6 - изображение профиля не отображается - PullRequest
1 голос
/ 30 марта 2020

В настоящее время я разрабатываю веб-сайт, используя laravel framework для PHP. Сейчас я работаю над страницей профиля, чтобы все поля были связаны с соответствующим столбцом в базе данных. Они обновляются нормально, но всякий раз, когда пользователь меняет свое изображение со стандартного на выбранное, он просто отображает пустое поле. Вот мой код для обзора и был бы очень признателен за внешний вклад. PS: У меня есть расширение изображения, добавленное правильно

Profile.blade. php:

 <div class="card-header">
                <img src="/uploads/avatars/{{$user->avatar}}" style="width:100px; height:100px; float:left;
                margin-right:25px">
                <strong>{{$user->name}}'s Profile</strong></div>

ProfileController. php:

public function update(Request $request)
    {
        $this->validate($request, ['name' => 'required','email' => 'required|email']);
        $user = Auth::user();

        $user->name = $request->name;
        $user->email = $request->email;
        $user->about = $request->about;
        $user->save();

        if($request->hasFile('avatar')){
            $avatar = $request->avatar;
            $avatar_new = time() . '.' . $avatar->getClientOriginalExtension();//Creates unique name for file 
            Image::make($avatar)->resize(300,300)->save(public_path('/uploads/avatars/' . $avatar_new));
            $user->avatar = $avatar_new;
            $user->save();
        return redirect()->back();

            }

EXTENSION: Теперь по какой-то причине, когда я пытаюсь обновить свой пользовательский образ, я сталкиваюсь с этой ошибкой

 Intervention\Image\Exception\NotSupportedException
GD Library extension not available with this PHP installation.```



Even though it was at least updating only 15 minutes ago.

1 Ответ

0 голосов
/ 30 марта 2020

Здравствуйте, в вашем контроллере, который сохраняет ваши изображения, вам нужна реализация изображения с изображением магазина в папке хранения, которая поможет вам загружать изображения, а laravel сохранит его в изображениях хранилища и будет доступен в паблике. c хранилище.

Так что вам нужно?

go до здесь необходимо хранить изображения в хранилище папок, а ссылка на URL в вашей базе данных

вам также необходимо сохранить изображение в вашем контроллере, как это:

public fucntion create(Request $request){
 $inputs = $request->all(); // that will be take all inputs
 $your_model = Model::class // take your model to save data
 $your_model = store($inputs['image'],'name_of_your_link_folder');
 $your_model->create();
}

И для обновления изображения:

public fucntion create(Request $request){
 $inputs = $request->all(); // that will be take all inputs
 $your_model = Model::class // take your model to save data
 $your_model = store($inputs['image'],'name_of_your_link_folder');
 $your_model->save();
}

после этого вам нужно использовать в своем блейде (который вы хотите отобразить изображение), вы просто используете это {{ asset('storage'.$link_of_the_image }}

...