반응형
PHP에서 특성을 확장하는 방법이 있나요?
기존 기능을 사용하고 싶다trait
나만의 것을 만들 수 있는trait
나중에 수업에 적용하기 위해서만요.
연장하고 싶다Laravel SoftDeletes
만들어야 할 특성SaveWithHistory
삭제한 레코드로 레코드의 복사본을 만듭니다.저도 같이 연장하고 싶어요.record_made_by_user_id
들판.
네, 있어요.다음과 같은 새로운 특성을 정의하면 됩니다.
trait MySoftDeletes
{
use SoftDeletes {
SoftDeletes::saveWithHistory as parentSaveWithHistory;
}
public function saveWithHistory() {
$this->parentSaveWithHistory();
//your implementation
}
}
나는 다른 접근법을 가지고 있다. ParentSaveWithHistory
이 특성에서는 아직 적용할 수 있으므로 적어도 개인으로 정의해야 합니다.
trait MySoftDeletes
{
use SoftDeletes {
saveWithHistory as private parentSaveWithHistory;
}
public function saveWithHistory()
{
$this->parentSaveWithHistory();
}
}
또한 특성에서 '덮어쓰기' 방법을 고려하십시오.
use SoftDeletes, MySoftDeletes {
MySoftDeletes::saveWithHistory insteadof SoftDeletes;
}
이 코드는 메서드를 사용합니다.saveWithHistory
부터MySoftDeletes
에 존재하는 경우라도)SoftDeletes
.
언급URL : https://stackoverflow.com/questions/40299080/is-there-a-way-to-extend-a-trait-in-php
반응형
'programing' 카테고리의 다른 글
Amazon RDS 백업/스냅샷은 실제로 어떻게 작동합니까? (0) | 2022.10.20 |
---|---|
retroft 2 @path vs @query (0) | 2022.10.20 |
잭슨을 사용하여 오브젝트에 raw JSON을 포함하려면 어떻게 해야 합니까? (0) | 2022.10.20 |
Python에서 문자열을 더블로 변환하려면 어떻게 해야 하나요? (0) | 2022.10.20 |
str.contains를 사용하여 NaN을 무시합니다. (0) | 2022.10.20 |