首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何防止未定义变量:在成功传递数据秘密以形成和创建订阅时,Laravel视图文件中的意图错误?

如何防止未定义变量:在成功传递数据秘密以形成和创建订阅时,Laravel视图文件中的意图错误?
EN

Stack Overflow用户
提问于 2020-01-22 13:10:02
回答 1查看 551关注 0票数 0

嗨,Laravel开发者,

我正在为我的条纹表单创建一个设置意图。当我去显示我的表单时,我得到了一个未定义的错误变量:意图(View:.)。如果我从表单中删除数据秘密=“{{$意向->客户_机密}}”,就会得到这个404页。

下面是我在视图文件、路由和控制器中的表单。

以下是我的视图文件:

代码语言:javascript
运行
复制
<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>

这是我的路线:

代码语言:javascript
运行
复制
Route::get('/plan/{plan}', 'PlanController@show')->name('plans.show');
Route::post('/subscription', 'SubscriptionController@create')->name('subscription.create') ;

以下是我的订阅控制器:

代码语言:javascript
运行
复制
<?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');
}
}

这是我的计划主计长:

代码语言:javascript
运行
复制
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'));
}
}

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2022-04-01 04:00:56

你需要传递意图变量来查看你的刀片,它在寻找意图变量,如果找不到它,它就抛出错误。

解决方案

代码语言:javascript
运行
复制
public function show(Plan $plan, Request $request) {
    $intent = auth()->user()->createSetupIntent();
    return view('plans.show', compact('plan', 'intent'));
}

在此之后,您的意图将被传递到视图文件和错误将消失。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59860540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档