Привет 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'));
}
}
Спасибо за вашу помощь.