2017-06-15 2 views
2

私のフォームの挿入に問題があります。私が漠然と知っているのは、Laravel 5.3の下でのコードの再開です。入力が爆発して挿入します。

このように私は自分自身をコードに適応させなければならず、実際には私のデータベースには2つに分かれているフィールド記述があります:ディスプレイに「champ1」と「champ2」がありますが、挿入体を作るために、それは誰かが溶液または一つのトラックに私を指示可能性が..動作しません

私の見解ください

<form method="POST" action="{{ url('/update/'.$data->id) }}" enctype="multipart/form-data"> 
        {{ csrf_field() }} 
        <img style="height:100px;" src="{{ URL::asset("storage/".$data["categorie"]->libelle."/micro/".$data->url)}}" alt="" /> 
        <label for="upload">Image de l'article :</label> 
        <input type="file" name="upload" /> 

        @if (count($data->langues) > 0) 

         @foreach ($data->langues as $langue) 
         <h3>{{ $langue->libelle }}</h3> 
         <input type="text" name="titrel{{ $langue->id }}" placeholder="Titre en {{ $langue->libelle }}" 
         value="{{old("titrel".$langue->id,$data->texts[$langue->id]->titre)}}" /> 
         <label for="descriptionl{{ $langue->id }}">Description en {{ $langue->libelle }}</label> 
         <textarea type="text" name="descriptionl{{ $langue->id }}" 
         placeholder="Description en {{ $langue->libelle }}">{{old("descriptionl".$langue->id,$data->texts[$langue->id]->description)}}</textarea> 
         <textarea type="text" name="champ1l{{ $langue->id }}" 
         placeholder="Aperçu en {{ $langue->libelle }}">{{old("champ1l".$langue->id,$data->texts[$langue->id]->champ1)}}</textarea> 
         <textarea type="text" name="champ2l{{ $langue->id }}" 
         placeholder="Description en {{ $langue->libelle }}">{{old("champ2l".$langue->id,$data->texts[$langue->id]->champ2)}}</textarea> 
         @endforeach 

       @endif 
        <input type="submit" value="Mettre à jour" /> 
       </form> 

私のコントローラ:ヨーヨーで

public function edit($id){ 
    $article = Article::find($id); 
    if($article == null) 
     return redirect("/home"); 
    $article->langues=Langue::all(); 
    $test= array(); 
    foreach($article->langues as $langue){ 
     $test[$langue->id]=TextArticle::firstOrNew(['idlangue' => $langue->id,'idarticle'=>$id]); 
     $myString=$test[$langue->id]->description; 
     $myArray = explode(';', $myString); 
     if(count($myArray)>1){ 
      $test[$langue->id]->champ1=$myArray[0]; 
      $test[$langue->id]->champ2=$myArray[1]; 
     } 
     elseif (count($myArray)==1) { 
      $test[$langue->id]->champ1=""; 
      $test[$langue->id]->champ2=$myArray[0]; 
     } 
    } 
    $article->texts=$test; 
    $article->categorie=Categorie::find($article->idcategorie); 
    //var_dump($test); 
    return view('articles/edit')->with("data",$article); 


} 

public function update(Request $request, $id){ 
    $article = Article::find($id); 
    $categorie = Categorie::find($article->idcategorie); 
    if($article == null) 
     return redirect("/home"); 
    $validation=[]; 
    $langues=Langue::all(); 
    foreach ($langues as $key => $value) { 
     $validation["titrel".$value->id]='max:255'; 
     $validation["descriptionl".$value->id]='max:1000'; 
     $validation["champ1l".$value->id]='max:200'; 
     $validation["champ2l".$value->id]='max:800'; 
    } 
    $this->validate($request, $validation); 


    DB::beginTransaction(); 


     try{ 
      // vérifier upload file sur Laravel 
     $file=$request->file('upload'); 
     $path=storage_path('app/public/'.$categorie->libelle); 
     if(!Filemgr::exists($path)) { 
      Filemgr::makeDirectory($path.'/mini', 0766, true); 
      Filemgr::makeDirectory($path.'/micro', 0766, true); 
     } 

     Image::make($file) 
      ->resize(1400, null, function ($constraint) { 
       $constraint->aspectRatio(); 
      }) 
      ->save($path.'/'.$article->url); 
     Image::make($file) 
      ->resize(900, null, function ($constraint) { 
      $constraint->aspectRatio(); 
      }) 
      ->save($path.'/mini/'.$article->url); 
     Image::make($file) 
      ->resize(600, null, function ($constraint) { 
       $constraint->aspectRatio(); 
      }) 
      ->save($path.'/micro/'.$article->url); 


     foreach($langues as $key=>$value){ 
      $text=TextArticle::firstOrNew(['idlangue' => $value->id,'idarticle'=>$id]); 
      $text->titre=$request->input('titrel'.$value->id); 
      $text->description=$request->input('descriptionl'.$value->id); 
      $text->save(); 
     } 

     DB::commit(); 
     } 
     catch(Exception $e){ 
      DB::rollBack(); 

     } 
     $categorie=Categorie::find($article->idcategorie); 
    return redirect("/categorie/".$categorie->libelle); 


} 

答えて

1

あなたはそれを行う:

public function update(Request $request, $id){ 
    $article = Article::find($id); 
    $categorie = Categorie::find($article->idcategorie); 
    if($article == null) 
     return redirect("/home"); 
    $validation=[]; 
    $langues=Langue::all(); 
    foreach ($langues as $key => $value) { 
     $validation["titrel".$value->id]='max:255'; 
     $validation["descriptionl".$value->id]='max:1000'; 
     $validation["champ1l".$value->id]='max:200'; 
     $validation["champ2l".$value->id]='max:800'; 
    } 
    $this->validate($request, $validation); 


    DB::beginTransaction(); 


     try{ 
      // vérifier upload file sur Laravel 
     $file=$request->file('upload'); 
     $path=storage_path('app/public/'.$categorie->libelle); 
     if(!Filemgr::exists($path)) { 
      Filemgr::makeDirectory($path.'/mini', 0766, true); 
      Filemgr::makeDirectory($path.'/micro', 0766, true); 
     } 

     Image::make($file) 
      ->resize(1400, null, function ($constraint) { 
       $constraint->aspectRatio(); 
      }) 
      ->save($path.'/'.$article->url); 
     Image::make($file) 
      ->resize(900, null, function ($constraint) { 
      $constraint->aspectRatio(); 
      }) 
      ->save($path.'/mini/'.$article->url); 
     Image::make($file) 
      ->resize(600, null, function ($constraint) { 
       $constraint->aspectRatio(); 
      }) 
      ->save($path.'/micro/'.$article->url); 


     foreach($langues as $key=>$value){ 
      $text=TextArticle::firstOrNew(['idlangue' => $value->id,'idarticle'=>$id]); 
      $text->titre=$request->input('titrel'.$value->id); 
      if($request->input('champ1l'.$value->id)!=null&&$request->input('champ1l'.$value->id)!=''){ 
      $text->description=$request->input('champ1l'.$value->id).';'.$request->input('champ2l'.$value->id); 
      } 
      else{ 
      $text->description=$request->input('champ2l'.$value->id); 
      } 
      $text->save(); 
     } 

     DB::commit(); 
     } 
     catch(Exception $e){ 
      DB::rollBack(); 

     } 
     $categorie=Categorie::find($article->idcategorie); 
    return redirect("/categorie/".$categorie->libelle); 


} 
+0

ええ:Dありがとう:) – AlexisCraig

関連する問題