在输入和爆炸中爆炸插入bdd

时间:2017-06-15 06:12:10

标签: forms laravel explode

插入表单时遇到问题。在Laravel 5.3下,我只是模糊地知道恢复代码。

因此我必须适应代码,事实上我在我的数据库中有一个字段描述,分为两个:显示中的“champ1”和“champ2”一切都很好,但是当我想要插入,它不起作用..有人可以指示我解决方案或一个轨道

我的观点:

compile sdk

我的控制员:

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

1 个答案:

答案 0 :(得分: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);


}