Изображение не отображается на первой странице - PullRequest
0 голосов
/ 19 января 2019

Это постконтроллер и индексный метод, показывающий изображение на внешнем интерфейсе:

 public function index(){

        $user = Auth::user();
        $posts = Post::paginate(2);
        $images = Image::all();

      return view('post.index', compact('posts', 'user', 'images'));

}
public function create(){
    $categories = Category::all();

    return view('post.create', compact('categories'));
}
public function store(Request $request){

     $user_id = Auth::user();
     $post_id = $user_id->post()->create($request->all());


$image=array();
if($files=$request->file('image')){
    foreach($files as $file){
        $name= time() .$file->getClientOriginalName();
        $file->move('image',$name);

    Image::create([
        'image'     =>  $name,
        'post_id'   => $post_id->id,
    ]);

    }
}

    return redirect()->back();

}

Это мой файл просмотра, там опубликовано содержание:

@foreach($posts as $key=>$post) 
			
		<div class="col-sm-4 my-4">
   			 <div class="card center">
       			 <img class="card-img-top" src="img/user1.jpg" alt="">
        		<div class="card-body">
           		 <h2 class="card-title">{{$post->title}}</h2>
            	<p class="card-text">{{$post->category}}</p>
            	<p class="card-text">{{$post->title}}</p>
         
                    @foreach($images as $image)
                      <p>{{$image->image}}</p>
                    @endforeach
        		</div>        
   		 	 </div>

		</div>
		
			
		
		@endforeach

Это таблица изображений

Это таблица сообщений

Теперь проблема в том, что когда я пытаюсь получить изображения, просто показывают имя изображения ... но как мне правильно отобразить изображение на первой странице.

Это мой выходной файл браузера .... Таблица изображений и таблица сообщений отдельно подключаются к внешнему ключу ... На первой странице показано расширение изображений, но изображение не отображается

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

Значение таблицы изображений в базе данных

Ответы [ 3 ]

0 голосов
/ 19 января 2019

Сначала необходимо связать хранилище с общей папкой, если оно не

php artisan storage: ссылка

Затем вы можете получить изображение по

<img src="{{ '/public/images/' . $image->image }}">

Здесь images - это имя папки вашего изображения, которое вы используете для хранения изображения.

0 голосов
/ 19 января 2019

Если вы сохранили изображение в хранилище, выполните следующую команду: хранилище php artisan: ссылка

Тогда вы можете получить изображение по

<p><img src="{{url('storage/images').'/'.$image->name}}"></p>

И если вы сохраните ваше изображение в публичном пути, то вы можете напрямую получить изображение по

<img src="{{url('/images').'/'.$image->name}}"/>
0 голосов
/ 19 января 2019

В соответствии с вашим кодом изображения сохраняются в папке image.Но вы получаете {{$image->image}}, который не является правильным путем.Вот почему ваши изображения не появляются.Вы можете использовать url() или assert() помощников.Или вы можете просто сделать {{ '/images/' . $image->image }} при отображении в цикле.

Конечно, вы должны использовать тег img для отображения в виде изображения.

<img src="{{ '/images/' . $image->image }}">

Обновить Я снова прочитал ваш код и увидел, что ваши изображения сохраняются в корневом каталоге приложения.В вашем store методе.Обновите $file->move('image',$name) до $file->move(public_path('images'),$name).Теперь мы помещаем ваши изображения в public_path.Вы должны повторно загрузить и протестировать его снова.

Вы можете узнать больше о помощнике assert здесь и о помощнике URL о здесь .

...