0
votes

Le dernier identifiant d'enregistrement inséré ne peut pas être récupéré dans laravel

J'essaie d'imprimer le dernier identifiant d'enregistrement inséré de ma table d'abonnement Stripe.

Voici ce que j'ai fait jusqu'à présent,

public function subscribe(Request $request)
    {
     
        $user = auth()->user();
        $paymentMethod = $request->payment_method;
        $appId = $request->appId;
        $planId = $request->plan;
        $user->newSubscription('main', $planId)->create($paymentMethod);

        $AppPayment = DB::table('subscriptions')->insertGetId();

        return $AppPayment;
        dd($AppPayment);
    
        

       $this->activateApp($appId);
       

    }

L'enregistrement a été créé mais je n'obtiens pas la sortie dd ..


8 commentaires

parce que vous avez une instruction return avant dd , déplacez dd avant return vous verrez le résultat dd. L'instruction return signifie que la méthode est terminée, donc les deux dernières lignes de code ne seront pas exécutées.


non, toujours pas


quelle ligne de code crée les abonnements?


$ user-> newSubscription ('main', $ planId) -> create ($ paymentMethod); ce


mais ici $ AppPayment = DB :: table ('abonnements') -> insertGetId (); il essaie également de créer un enregistrement, donc c'est nul


compris, quelle serait la solution alors?


avez-vous créé cette méthode newSubscription?


continuons cette discussion dans le chat .


3 Réponses :


0
votes

vous devez insérer un enregistrement ici! C'est ici que doit être inséré l'enregistrement.

public function subscribe(Request $request)
    {

        $user = auth()->user();
        $paymentMethod = $request->payment_method;
        $appId = $request->appId;
        $planId = $request->plan;
        $subscription = $user->newSubscription('main', $planId)->create($paymentMethod);
        dd($subscription->id);
        return $AppPayment;

       $this->activateApp($appId);


    }

Mettre à jour si vous utilisez un caissier, vérifiez ce code.

    $id = DB::table('subscriptions')->insertGetId(['foo'=>'bar']);

dd($id);


0 commentaires

0
votes

vérifiez votre tableau de données il n'y a rien d'intéressant, c'est pourquoi je ne reçois pas

$dataArray = [
            'column_name' => $request->inputFieldName,
                  ];
$AppPayment = DB::table('subscriptions')->insertGetId($dataArray);


0 commentaires

0
votes

Cela devrait fonctionner après la création de l'abonnement:

$user->subscription->id;


1 commentaires

$ user-> subscription () -> id; doit être $ user-> subscription-> id;