#php #laravel #cartalyst
#php #laravel #cartalyst
Вопрос:
Я знаю, что глобальная переменная должна быть инициализирована contractor. что делать, если нужно инициализировать глобальную переменную внутри одной функции и получить к ней доступ в другой функции.
это моя первая функция
public $customerId;
public function store(CheckoutRequest $request)
{
try {
$customer = Stripe::customers()-&&t;create([
'source' =&&t; $request-&&t;stripeToken,
'email' =&&t; $request-&&t;email,
'description' =&&t; $request-&&t;name
]);
**$this-&&t;customerId** = $customer-&&t;id;
$this-&&t;char&eCustomer($request, $customer-&&t;id);
return redirect()-&&t;route('shipper.payment')-&&t;with('success_messa&e', 'Thank you! your payment was successfull.');
} catch (Exception $e) {
return back()-&&t;withErrors('Error! ' . $e-&&t;&etMessa&e());
}
}
это моя вторая функция
public function paymentDetails()
{
return $this-&&t;customerId;
}
Я создаю customer в Stripe и присваиваю созданный идентификатор клиента глобальной переменной $ CustomerID, мне нужна внутренняя функция PaymentDetails $CustomerID, которая вызывается другим маршрутом, но PaymentDetails возвращает null. кто-нибудь может помочь, пожалуйста, как получить идентификатор клиента в других функциях?
Ответ №1:
Если вы, как вы описываете, вызываете paymentDetails()
позже по другому маршруту, то общедоступная переменная больше не будет установлена. Контроллер разрешается для каждого запроса, поэтому он ничего не сохраняет для следующего запроса.
Вероятно, вам лучше всего сохранить часть customer на вашем собственном конце и использовать это для получения CustomerID при следующем запросе, или, возможно, использовать https://laravel.com/docs/7.x/session
Комментарии:
1. Я попробовал session, мой front is vue n маршрут определен в api.php Поскольку api не имеет состояния, сеанс там недоступен, я ищу решение для сохранения $ CustomerID в серверной части для последующего запроса. любым другим способом?