声明一次值以在多个控制器方法中使用 - Laravel 5.2
Declare value ONCE to use in multiple controller methods - Laravel 5.2
我目前必须在每个将对 Stripe 进行 api 调用的控制器方法中声明我的 Stripe api 键。例如
public function __construct()
{
\Stripe\Stripe::setApiKey(env('STRIPE_KEY'));
}
public function addCard()
{
Stripe::setApiKey(env('STRIPE_KEY'));
}
public function updateCard()
{
Stripe::setApiKey(env('STRIPE_KEY'));
}
public function deleteCard()
{
Stripe::setApiKey(env('STRIPE_KEY'));
}
这变得非常烦人,因为我有超过 10 种方法在执行此操作。我的问题是,有没有一种方法可以在某处声明一次密钥,而不必在每个控制器方法中调用它?
是的,我会在您的 AppServiceProvider
中完成。您可以在 app/Providers/AppServiceProvider.php
.
找到它
在注册方法中粘贴:
public function register()
{
Stripe::setApiKey(env('STRIPE_KEY'));
}
每个请求 bootstrap 期间 运行。
或者,您可以在控制器的构造函数中进行设置。这将导致它 运行 仅针对此控制器中的所有操作。
class PaymentController extends Controller {
public function __construct() {
Stripe::setApiKey(env('STRIPE_KEY'));
}
public function addCard() {
...
我认为这是不太理想的,您的服务提供商应该主要负责连接您的依赖项。由你决定。
我目前必须在每个将对 Stripe 进行 api 调用的控制器方法中声明我的 Stripe api 键。例如
public function __construct()
{
\Stripe\Stripe::setApiKey(env('STRIPE_KEY'));
}
public function addCard()
{
Stripe::setApiKey(env('STRIPE_KEY'));
}
public function updateCard()
{
Stripe::setApiKey(env('STRIPE_KEY'));
}
public function deleteCard()
{
Stripe::setApiKey(env('STRIPE_KEY'));
}
这变得非常烦人,因为我有超过 10 种方法在执行此操作。我的问题是,有没有一种方法可以在某处声明一次密钥,而不必在每个控制器方法中调用它?
是的,我会在您的 AppServiceProvider
中完成。您可以在 app/Providers/AppServiceProvider.php
.
在注册方法中粘贴:
public function register()
{
Stripe::setApiKey(env('STRIPE_KEY'));
}
每个请求 bootstrap 期间 运行。
或者,您可以在控制器的构造函数中进行设置。这将导致它 运行 仅针对此控制器中的所有操作。
class PaymentController extends Controller {
public function __construct() {
Stripe::setApiKey(env('STRIPE_KEY'));
}
public function addCard() {
...
我认为这是不太理想的,您的服务提供商应该主要负责连接您的依赖项。由你决定。