После обновления записи в Laravel 5.8 не отображается полный путь к изображению - PullRequest
1 голос
/ 20 сентября 2019

Когда я создаю новое сообщение, изображение сообщения отображается правильно.Но когда я редактирую и обновляю сообщение, оно не отображается. После небольшого поиска элемента inspect я обнаружил, что изображение не получает полный путь -

<img src='http://127.0.0.1:8000/Updated_Image.jpg'

Но путь неотредактированного сообщения -

<img src='http://127.0.0.1:8000/uploads/posts/First_Image.jpg'

Это мой метод обновления в postController.php-

public function update(Request $request, $id)
    {



        $this->validate($request,[
            'title'=>'required|max:255',
            'content'=>'required',
            'catagory_id'=>'required'
            ]);

        $post = Post::find($id); 

        if($request->hasFile('featured'))
        {

            $featured = $request->featured;
            $featured_new_name = time() . $featured->getClientOriginalName();
            $featured->move('uploads/posts',$featured_new_name);

            $post->featured = $featured_new_name;
        }

        $post->title = $request->title;
        $post->content = $request->content;
        $post->catagory_id = $request->catagory_id;

        $post->save();

        Session::flash('success','Post updated successfully!');

        return redirect()->route('posts');
    }

Функция сохранения:

public function store(Request $request)
    {


        $this->validate($request,[
            'title'=>'required|max:255',
            'featured'=>'required|image',
            'content'=>'required',
            'catagory_id'=>'required'

        ]);


        $featured = $request->featured;
        $featured_new_name = time().$featured->getClientOriginalName();
        $featured->move('uploads/posts',$featured_new_name);


        $post = Post::create([
            'title'     =>  $request->title,
            'featured'  =>  'uploads/posts/' . $featured_new_name,
            'catagory_id'  =>  $request->catagory_id,
            'content'   =>  $request->content,
            'slug'=> str_slug($request->title)
        ]);


        Session::flash('success', 'A new post is created!');



        return redirect()->back();



    }

Размещать код файла блейда, откуда находятся оба файлаdisplay-

<td> <img src="{{ asset($post->featured) }}" alt="{{ $post->title }}"  width="50px" height="50px"> </td>

Я также пытался просто {{$ post-> featured}}, но это не сработало.

Опубликовать изображение после обновления, поврежденное изображение

1 Ответ

0 голосов
/ 20 сентября 2019

пока вы сохраняете изображение, вы добавляете путь с именем изображения, смотрите код ниже

$post = Post::create([
            'title'     =>  $request->title,
            'featured'  =>  'uploads/posts/' . $featured_new_name,
            'catagory_id'  =>  $request->catagory_id,
            'content'   =>  $request->content,
            'slug'=> str_slug($request->title)
        ]);

, пока вы обновляете изображение, вы не добавляете путь, как вы видите ниже код

if($request->hasFile('featured'))
        {

            $featured = $request->featured;
            $featured_new_name = time() . $featured->getClientOriginalName();
            $featured->move('uploads/posts',$featured_new_name);

            $post->featured = $featured_new_name;
        }

так что просто добавьте путь, пока вы обновляете данные так же, как и хранилище.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...