Laravel 9: CRUD probleme de valeur NULL lors de creation

Fermé
Rune188 Messages postés 65 Date d'inscription lundi 20 février 2017 Statut Membre Dernière intervention 29 janvier 2024 - 20 avril 2023 à 23:03
 Profil bloqué - 24 avril 2023 à 03:40

Bonjour,

Je tente de développer un un projet avec laravel 9 et j'ai pour cela créé des CRUD pour chaque modèles mais je rencontre un problème lors de l'utilisation de celui-ci lors de la création de nouvelles entrées dans ma base de données Mysql : certaines colonnes affiche la valeur NULL.

Ma table Image:

CREATE TABLE IF NOT EXISTS `images` (
  `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `path` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `project_id` bigint(20) UNSIGNED DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `images_project_id_foreign` (`project_id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;

Model:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Image extends Model
{
    use HasFactory;
    protected $fillable = [
        'name', 'path','project_id'
    ];
}

Controlleur:

    public function store(Request $request)
    {
        $projects = Project::all();
        $images = Image::all();


        $nametest=$request->image->getClientOriginalName();
        $imageName = time().'.'.$request->image->extension();

        $request->image->move(public_path('image'), $imageName);
        $pathImg="/image/$imageName/";

        $request->validate([
            'name' => $imageName,
            'path' => $pathImg,
        ]);

        Image::create($request->all());

        return view('gallery')
            ->with('success','You have successfully upload image.')
            ->with('image',$pathImg)
            ->with('images',$images)
            ->with('projects',$projects);

    }

Mon formulaire:

<form method="POST" action="{{ route('image.store') }}" enctype="multipart/form-data">
                    @csrf
                    <input type="file" class="form-control" name="image" />
                    <input type="hidden" id="version" name="project_id" value="{{ $project->id }}" />

                    <button type="submit" class="btn btn-sm">Upload</button>
</form>

Les colonnes "name" et "path" sont celles qui affiche toujours une valeur Null. 

A voir également:

1 réponse

Bonjour*

Il est possible que vous rencontriez des problèmes avec les valeurs null lors de la création ou de la mise à jour de données avec Laravel 9. La première chose à vérifier est de vous assurer que vous avez correctement configuré votre modèle pour accepter les valeurs null. Vous pouvez le faire en ajoutant la ligne suivante à votre modèle:

protected $nullable = ['field_name'];

Cela vous permettra d'accepter des valeurs null pour le champ spécifié. Vous devrez peut-être également vérifier que les valeurs par défaut sont correctement configurées pour les champs qui peuvent être null

(*) Élément basique de politesse ajouté par la modération CCM !...................................


0