Есть ли способ расширить признак в PHP?
Я хочу использовать функциональные возможности существующего trait
и создавать свои собственные функции поверх него, только для последующего применения его в классах.
Именно поэтому я хочу расширить черту Laravel SoftDeletes
, чтобы сделать функцию SaveWithHistory
, поэтому она создаст копию текущего состояния записи как удаленной записи. Я также хочу расширить его с помощью поля record_made_by_user_id
.
Ответы
Ответ 1
Да, есть. Вы должны определить новый признак следующим образом:
trait MySoftDeletes
{
use SoftDeletes {
SoftDeletes::saveWithHistory as parentSaveWithHistory;
}
public function saveWithHistory()
{
$this->parentSaveWithHistory();
//your implementation
}
}