【发布时间】:2016-09-11 23:26:08
【问题描述】:
我正在处理的作曲家包有问题。它实现了一个特征 Billable。
trait Billable
{
/**
* Update the payment method token for all of the user's subscriptions.
*
* @param string $token
* @return void
*/
protected function updateSubscriptionsToPaymentMethod($token)
{
foreach ($this->subscriptions as $subscription) {
if ($subscription->active()) {
BraintreeSubscription::update($subscription->braintree_id, [
'paymentMethodToken' => $token,
]);
}
}
}
}
我正在尝试在我的班级中重写此方法
class Organisation extends Model
{
use Billable;
/**
* Update the payment method token for all of the user's subscriptions.
*
* @param string $token
* @return void
*/
protected function updateSubscriptionsToPaymentMethod($token)
{
foreach ($this->subscriptions as $subscription) {
if ($subscription->active()) {
BrntreeSubscription::update($subscription->braintree_id, [
'paymentMethodToken' => $token,
]);
}
}
}
}
但是该方法没有被覆盖。作为测试,我覆盖了一些公共功能并且它们工作正常,这是特征的限制吗?我试图在网上找到答案,但没有找到答案。
我正在尝试重写此函数,因为我需要自定义 BraintreeSubscription 类的行为。
任何帮助将不胜感激。
【问题讨论】:
-
您还应该将
subscriptions作为参数传递。如果你保持原样,它可能会在你使用trait的地方抛出错误,而你还有其他东西而不是subscriptions数组。
标签: php laravel laravel-5.2 traits laravel-cashier