Bonjour,

Je suis sur un projet où je doit faire des rechargements à partir du numero saisi dans un champ input, je doit d'abord vérifier si le numero existe dans ma table carte et récupérer son id. Pour le moment je récupérait tous les numeros dans un select comme ceci :

<div class="form-row">
    <div class="col-md-6 mb-3">
        <label for="carte_id">Numero de carte</label>
        <div class="input-group">
            <select name="carte_id" id="carte_id" class="form-control @error('carte_id') is-invalid @enderror" aria-describedby="inputGroupPrepend" required>
                    @foreach ($cartes as $carte)
                        <option value="{{ $carte->id }}">{{ $carte->NumeroCarte }}
                        </option>
                    @endforeach
                </select>
                @error('carte_id')
                <span class="invalid-feedback" role="alert">
                    {{ $message }}
                </span>
                @enderror
        </div>
    </div>

    <div class="col-md-3 mb-3">
        <label for="Montant">Montant</label>
        <div class="input-group">
            <input type="text" class="form-control @error('Montant') is-invalid @enderror" name="Montant" id="Montant" placeholder="Montant du Rechargement" aria-describedby="inputGroupPrepend" value="{{ old('Montant') }}">
            @error('Montant')
            <span class="invalid-feedback" role="alert">
                {{ $message }}
            </span>
            @enderror
        </div>
    </div>

</div>

et dans mon controller Recharge

public function store(Request $request)

    {
        $recharge = request()->validate([
            'carte_id'  => 'required',
            'Montant' => 'required|integer',
            'TypeRecharge'  => 'required',
            'caisse_id'  => 'required'
        ]);

        $recharge = Recharge::create($recharge);

            $CarteID = $recharge->carte_id;
            $Montant = $recharge->Montant;

            $ID = Carte::where('id', $CarteID)->first();
            $Solde = $ID->Solde;

            Carte::where('id', $CarteID)->update(['Solde' => $Montant + $Solde]);

        $recharges = Recharge::all();

        Session::flash('success', 'Rechargement effectué avec succès.');
        return redirect()->route('recharges.index', compact ('recharges'));
    }

Cela fonction correctement mais je veut récupérer l'id à partir d'un de saisi et non dans un liste deroulante. Merci

1 réponse


Salut,
Je pense pas avoir très bien compris ton problème. Tu veux un input à la place du select, mais que l'id saisie soit valide.
Pour ça, tu as juste à ajouter modifier ton tableau de validation

'carte_id' => 'required|exists:cartes,id' // Vérifier si l'id existe dans la table carte