0
votes

l'image ne fait pas économiser dans dB à Laravel

HI M Essayez de sauvegarder des données dans DB Data Saves, mais l'image ne sauvegardier pas comment enregistrer son enregistrement dans dB:

Contrôleur: P>

   public function store(Request $request)
{
    // dd($request->all());
    $request->validate([
        'category_name'         => 'required',
        'category_description'  => 'required',
        'category_slug'         => 'required',
        'category_image'        => 'required|image',
    ]);

    DB::table('categories')->insert([
        'category_name'          => $request->category_name,
        'category_description'   => $request->category_description,
        'category_slug'          => $request->category_slug,
        'category_image'         => $request->category_image,
    ]);

    $path = $request->file('category_image');
    $path->getClientOriginalName();
    $path->move(public_path('images/backend_images/category_images');

    return back();
}


4 commentaires

On dirait que vous essayez de stocker tout le fichier dans la base de données, puis dans le système de fichiers. Idéalement, vous feriez simplement stocker le chemin au fichier de la base de données.


Seulement Nom des magasins de fichiers dans dB, mon code est faux, alors je l'affiche ici pour le résoudre , \ Erreur de syntaxe, inattendue ';'; ',', 'ou') 'à cette ligne: $ Chemin-> Move (Public_Path ('Images / Backend_images / Catégorie_imag ES'); Pouvez-vous me dire comment le résoudre


Il manque un autre ) avant le ; .


Maintenant, toutes les données ne sauvent pas et ne donnent aucune erreur


3 Réponses :


0
votes

Eh bien ... dans votre portion du code, il n'y a pas de var.save (); alors comment éloquent stocker toutes les données sans l'instruction donnée?

par exemple fait quelque chose comme ceci: xxx


0 commentaires

0
votes
    if ($request->hasFile('image')) {
        $file = $request->file('image'); 
        $filename     = date('mdYHis') .str_random(5).'.'.$file->extension();
        $request->image->move(base_path('public/images/rooms'), $filename);
        $request->merge(array('image' => $filename));;
    } 

5 commentaires

Vous manquez un ; après $ TameImage) et ils enregistrent public_path pas base_path .


@Matticustard j'ai édité j'ai utilisé base_path et son enregistrement dans le dossier public!


Maintenant, toutes les données ne sauvent pas et ne donnent aucune erreur


Non, base_path ('images / n'est pas le dossier public. Ce serait base_path (' public / images / .


En outre, vous ne stockez que le nom de fichier, pas le chemin.



0
votes

Je pense que cela aiderait. Mais vous pouvez parcourir plus de réponses.

Enregistrer dans annuaire public xxx

et le, sauvegarder dans la base de données xxx


0 commentaires