2017-01-16 9 views
0

一部の製品の画像をアップロードする機能を作った。私がすべての製品を反復するとき、イメージも表示したい。画像をアップロードしてビューに表示するLaravel 5.2

問題は、画像がアップロードされていますが、私が@foreachと反復するときには表示できません。私はパスを得るためにコントローラを試しましたが、動作しませんでした。私が反復すると

<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> 

:私は新製品を作成するときに、私は独自のストレージ

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

を作成したのconfig/filesystems.phpで

これまでのところ私はこれを行っています私の製品情報を通じて:

@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

ようでなければなりません:: file( 'image') - > getRealPath(); 'コメント付き? –

+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(); 

され、この `// $製品 - > IMAGEPATH =入力があるなぜあなたのビューが

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

お返事ありがとうございました。お早めにお見逃し申し上げます。私はやっていたこととは違っていますが、それは機能します!あなたが '$ destinationPath = public_path( '/ uploads /')を試してみましたが、あなたは' $ 'を使ってファイルのパスを修正する方法を教えてもらえますか? $ product ['imagePath'] = $/uploads/products/'。$ extension; 'しかし、私はそれをより動的にしたい:' $ product [' imagePath '] = $ destinationPath。$ extension ; 'これは/uploads/products/image.jpgではなくC:\ xampp \ htdocs \ shop \ public \/uploads/products /を返します。 – daino92

+0

作成時に移動しているパスから画像を取得する必要がありますアップロードした画像を保存するために保存方法からパスを変更することもできます。上記の例では、画像はpublic/imagesフォルダに保存されます –

関連する問題