Bonjour à tous.
J'aimerais attribuer de manière manuelle un de mes attributs Request lors du post d'un de mes formulaires.

Je m'explique : mon formulaire gère des dimensions de pneus (largeur, hauteur, diamètre), et je voudrais que le code identifie si cette dimension existe, et si elle n'existe pas je retourne sur la page avec un message d'erreur. Mais, si elle existe, j'aimerais que mon $request->dimension récupère l'ID de cette dimension.

Je met le code de mon controlleur ça sera un peu plus clair :

public function occasion(Request $request){
        $iLargeur = Input::get('largeur');
        $iHauteur = Input::get('hauteur');
        $iDiametre = Input::get('diametre');

        $iDimension = Dimension::where('id_largeur', $iLargeur)
                                ->where('id_hauteur', $iHauteur)
                                ->where('id_diametre', $iDiametre)
                                ->first();

        if($iDimension == null){
            return redirect()
                ->back()
                ->with('error_dim', "La dimension de pneu est incorrecte.");
        }
        else{
            $request->dimension = $iDimension;
        }

        $oOccasion = Occasion::create($request->all());

        return redirect()
            ->back()
            ->with('success', "La fiche n° $oOccasion->id à correctement été enregistrée.");
    }

Mon $request->dimension est actuellement un Input Hidden qui a pour valeur "null". Le code ici récupère la hauteur/largeur/diamètre, et regarde si une dimension existe avec ces trois valeurs.

Le soucis, c'est que mon $request->dimension = $iDimension ne fonctionne pas. Quand je fais un dump($request->dimension) ça affiche bien la nouvelle valeur, mais quand je le retire la valeur deviens nulle lors de l'entrée en base de données.

Avez vous une idée de ce que je devrais faire ?
Merci d'avance !

2 réponses


Perfectos
Réponse acceptée

Tu peux simplement faire :

$values = $request->all();

$values['dimension'] = $iDimension;

$oOccasion = Occasion::create($values);

Gene zys
Auteur

Parfait, j'avais oublié cette manière de faire, merci !