2017-08-10 2 views
1

das ist mein Funktionsspeicher in der Steuerung:kann jemand mir in laravel helfen, zu beheben, wenn ich Bild auf DB addiere, habe ich dieses D: yussfi wamp tmp php5571.tmp aber ich will den ursprünglichen Namen des Bildes

public function store(VehiculeRequest $request) 
{ 
    $image = $request->image_VH; 

    if($image->isValid()) { 
     $chemin = config('images.path'); 
     $extension = $image->getClientOriginalExtension(); 
     do { 
      $nom = str_random(10) . '.' . $extension; 
     } while(file_exists($chemin . '/' . $nom)); 

     $image->move($chemin, $nom); 
    } 

    $inputs = array_merge($request->all($image)); 
    $this->VHRepository->store($inputs); 
    return redirect(route('vehicules.index')); 
} 

und das ist meine Klasse Repository:

<?php 

    namespace App\Repositories; 

    use App\Vehicule; 
    use App\Http\Requests\VehiculeRequest; 

    class VHRepository 
    { 

     protected $Vehicule; 

     public function __construct(Vehicule $Vehicule) 
     { 
      $this->Vehicule = $Vehicule; 
     } 

     public function getPaginate($n) 
     { 
      return $this->Vehicule->with('user') 
      ->orderBy('vehicules.created_at', 'desc') 
      ->paginate($n); 
     } 

     public function store($inputs) 
     { 
      $this->Vehicule->create($inputs); 
     } 

     public function destroy($id_vehicules) 
     { 
      $this->Vehicule->findOrFail($id_vehicules)->delete(); 
     } 

    } 

Antwort

0

, wenn Sie den ursprünglichen Namen erhalten möchten, können Sie diese Methode getClientOriginalName verwenden.

So ist die Methode in Ihrem Controller wie der unten geschrieben werden soll:

-Controller

public function store(VehiculeRequest $request) 
{ 

    $image = $request->image_VH; 

    if($image->isValid()) { 
     $chemin = config('images.path'); 
     do { 
      $nom = $image->getClientOriginalName(); 
     } while(file_exists($chemin . '/' . $nom)); 

     $image->move($chemin, $nom); 
    } 

    // because the $image variable contain uploadedFile object, you cannot use array_merge on it. 
    // if you want to save the original name in your database you have to change the $image variable with $nom 
    // and for the usage of array_merge you have to add the second parameter on it 
    $inputs = array_merge($request->all(), ['image_VH' => $nom]); 

    // and if you want to use the path also when save that image in your DB 
    $inputs = array_merge($request->all(), ['image_VH' => $chemin . '/' . $nom]); 

    // and for the last store it 
    $this->VHRepository->store($inputs); 
    return redirect(route('vehicules.index')); 
} 

Sie diese UploadFile API Documentation über für weitere Informationen überprüfen kann, welche Methode Sie und auch für array_merge verwenden, können Sie kann dies lesen documentation

+0

danke linktoahref für Ihre Hilfe, aber ich habe scheinbar Problem –

+0

okay, ich habe die Antwort bearbeiten, werfen Sie einen Blick auf t Hut;) –

Verwandte Themen