我正在处理我正在处理的作曲家包。它实现了一个特性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类的行为。
非常感谢任何帮助。
答案 0 :(得分:2)
在你的班级中,你可以在功能名称之前做以下通知T,你可以改变它作为任何真正的别名。
use billable {
updateSubscriptionsToPaymentMethod as tUpdateSubscriptionsToPaymentMethod;
}
然后只需在类中添加所需的函数:
public function updateSubscriptionsToPaymentMethod(){
...
}