2017-01-16 10 views
0

Я сделал функцию, в которой я загружаю изображения некоторых продуктов. Когда я повторяю все свои продукты, я хочу показать изображение тоже.Загрузить изображения и показать их в виде Laravel 5.2

Проблема в том, что изображение загружается, но я не могу представить его, когда я повторяю @foreach. Я попытался в контроллере получить путь, но он не сработал.

До сих пор я сделал это:

В конфигурации/filesystems.php я создал пользовательское хранилище

'products' => [ 
     'driver' => 'local', 
     'root' => public_path('/pictures/uploads/products'), 
    ], 

Когда я создаю новый продукт:

<h1>Create new product</h1> 
    {!! Form::open(['route' => 'vendor.allproducts', 'files'=>true]) !!} 
    <div class="form-group"> 
    {!! Form::label('Title', 'Title:') !!} 
    {!! Form::text('title',null,['class'=>'form-control']) !!} 
    </div> 
    <div class="form-group"> 
    {!! Form::label('File', 'File:') !!} 
    {!! Form::file('image') !!} 
    </div> 

Когда я итерацию через мою информацию о продуктах:

@foreach ($products as $product) 
    <tr> 
     . 
     . 

     <td><img src="{{ $product->imagePath }}"></td> 
    </tr> 
@endforeach 

И в контроллере:

public function store(){ 
    $product = Request::all(); 
    $file = Request::file('image'); 
    $extension = $file->getClientOriginalExtension(); 
    Storage::disk('products')->put($file->getFilename().'.'.$extension, File::get($file)); 
    //$product->imagePath = Input::file('image')->getRealPath(); 
    Auth::user()->products()->create($product); 
    return redirect()->route('allproducts'); 
} 
+0

Почему это '// $ продукт-> ImagePath = Input :: file ('image') -> getRealPath(); 'commented? –

+0

Потому что он не работает. Это неудачная попытка получить путь к файлу в столбце $ product-> imagePath. – daino92

ответ

1

Ваш метод Магазин будет

if(input::hasfile("image")){ 
     $files = Input::file('image'); 
     $name = time()."_". $files->getClientOriginalName(); 
     $image = $files->move(public_path().'/image' , $name); 
     $imagefile->image=$name; 
    } 
     $imagefile->save(); 

И ваш взгляд должен быть

<td><img src="{{URL::to('/image/' . $product->image)}}"></td> 
+0

Спасибо за ответ и жаль, что не видел его раньше! Он отличается от того, что я делал, но он работает! @recovery men вы можете сказать мне способ исправить путь файла в переменной, поэтому, когда я пишу ' ', он будет работать? Я пробовал' $ destinationPath = public_path ('/ uploads/продукты/') 'и' $ product [' imagePath '] ='/uploads/products/'. $ extension; ' Но я хочу, чтобы это было более динамично:' $ product [' imagePath '] = $ destinationPath. $ extension ; 'но это возвращает мне C: \ xampp \ htdocs \ shop \ public \/uploads/products /" вместо /uploads/products/image.jpg – daino92

+0

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