Отображение изображений в фотогалерее Laravel - PullRequest
1 голос
/ 13 марта 2020

Я пытаюсь создать фотогалерею. В моем предыдущем вопросе здесь:

Больше информации об этом вопросе album-photo laravel gallery. ошибка обновления фотографий в альбоме

Я связался с другим пользователем, поскольку у меня возникла та же проблема, я провел дополнительное расследование и обнаружил, что проблема связана с этой строкой в ​​show.blade. php file

<img class="thumbnail" src="/storage/photos/{{$photo-> album_id}}/{{$photo->photo}}"
alt="{{$photo->title}}">

Проблема с {{$ photo-> album_id}}. Если я заменю его {{$ album-> id}}, оно покажет изображение, однако оно показывает только текущее изображение, но не остальные

В браузере, при просмотре источника, оно показывает это

/storage/photos//theimage.jpg

Вот соответствующие файлы

````<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Photo;

class PhotoController extends Controller
{
    //album_id is hidden field
    public function create($album_id){
      return view('photos.create')->with('album_id', $album_id);
    }

    public function store(Request $request){
        $this->validate($request, [
          'title' => 'required',
          'photo' => 'image|max:1999'
        ]);



        $filetostore =$request->file('photo')->getClientOriginalName();

        $path = $request->file('photo')->storeAs('public/photos/'.$request->input('album_id'), $filetostore);

              //upload photo
                $photo = new Photo;
                $photo->album_id = $request->input('album_id');
                $photo->title = $request->input('title');
                $photo->photo = $filetostore;

                $photo->save();

                return redirect('/albums/'.$request->input('album_id'))->with('success','Photo Uploaded');
      }

      public function show($id){
        $photo = Photo::find($id);
        return view('photos.show')->with('photo', $photo);
      }

}````

````@extends('layouts.app')

@section('content')
  <h3> Upload Photo </h3>
  {!!Form::open(['action'=> 'PhotoController@store', 'method' => 'POST', 'enctype'=> 'multipart/form-data'])!!}
  {{Form::text('title','')}}
  {{Form::hidden('album_id', $album_id)}}
  {{Form::file('photo')}}
  {{Form::submit('submit')}}
  {!!Form::close()!!}

@endsection````

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

````class Photo extends Model
{
      protected $fillable = array('album_id','photo', 'title');

      public function album(){
        return $this->belongsTo('App\Album');

      }
}````

Я не понимаю, почему album_id не имеет значения. Я проверял файлы много раз, но не могу найти никаких проблем:

Ваша помощь очень ценится!

1 Ответ

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

Вам необходимо dd($photo) или logger($photo), чтобы увидеть реальные / окончательные значения атрибутов $ photo.

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

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