Как предотвратить неопределенную переменную: намеренная ошибка в Laravel файле просмотра при передаче секретного данных для создания и успешного создания подписки? - PullRequest
0 голосов
/ 22 января 2020

Привет Laravel Разработчики,

Я создаю намерение установки для моей формы чередования. Когда я go отображаю свою форму, я получаю эту ошибку Неопределенная переменная: intent (View: ...). Если я удаляю data-secret = "{{$ intent-> client_secret }} " из формы, я получаю эту страницу 404 не найденной.

Ниже моя форма в файле представления, маршруте и контроллере.

Вот мой файл представления:

<form action="{{ route('subscription.create') }}" method="post" id="payment-form">
@csrf

<div class="form-group">
    <div class="card-header">
        <label for="card-element">
            Enter your credit card information
        </label>
    </div>
    <div class="card-body">
        <div style="width: 30em" id="card-element">
        <!-- A Stripe Element will be inserted here. -->
        </div>
        <!-- Used to display form errors. -->
        <div id="card-errors" role="alert"></div>
        <input type="hidden" name="plan" value="{{ $plan->id }}" />
    </div>
</div>
<div class="card-footer">
    <button data-secret="{{ $intent->client_secret }}" class="btn btn-dark" type="submit">Pay</button>
</div>

Вот мой маршрут:

Route::get('/plan/{plan}', 'PlanController@show')->name('plans.show');
Route::post('/subscription', 'SubscriptionController@create')->name('subscription.create') ;

Вот мой контроллер подписки:

<?php

// SubscriptionController.php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Laravel\Cashier\Billable;
use App\Plan;
use App\User;

class SubscriptionController extends Controller
{
public function __construct() {
    Stripe::setApiKey(env('STRIPE_SECRET'));
}
public function create(Request $request, Plan $plan)
{
    $plan = Plan::findOrFail($request->get('plan'));
    $user = $request->user();
    $paymentMethod = $request->paymentMethod;


    $paymentMethod = $request->get('stripePaymentMethod'); $plan = 'Your plan in a cae of 
subcription'; $user->newSubscription('main', $plan)->create($paymentMethod);



    return redirect()->route('home')->with('status', 'Your plan subscribed successfully');
}
}

Вот мой контроллер плана:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Plan;

class PlanController extends Controller {


public function index() {


    $plans = Plan::all();
    return view('plans.index', compact('plans'));
}

public function show(Plan $plan, Request $request) {


    return view('plans.show', compact('plan'));
}
}

Спасибо за вашу помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...