엔티티의 여러 번역을 제공하기 위해 lang
및 translation_of
속성 (또한 https://stackoverflow.com/a/7299777/1453912 참조) 모델을 사용하는 Multilingual
이라는 특성이 있습니다.특성에서 Laravel 모델 특성을 구성하는 방법은 무엇입니까?
$model->toArray()
이 호출 될 때 translation_of
필드를 모델에서 숨기고 싶습니다.이 필드는 $hidden
속성에 추가하여 쉽게 처리 할 수 있습니다. 이와 같이 :
class Model {
use Multilingual;
protected $hidden = ['translation_of'];
}
원래 모델을 깨끗하게 유지하려면 사용 된 특성을 통해 숨겨진 필드를 추가하고 싶습니다.
나는 시도했다 :
이 허용되지 않는 특성에
protected $hidden = ['translation_of'];
추가 :Undefined: trait declaration of property 'hidden' is incompatible with previous declaration
을 또한 매우 확장하지 (그것은 클래스의
$hidden
속성에 의해 오버라이드 (override) 할 것입니다, 나는 생각 ..)이 특성에 부팅 방법을 추가 :
static function bootMultilingual() { static::$hidden[] = 'translation_of'; }
스코프로 인해 (의심 스러울 정도로) 허용되지 않는 것입니다.
어떻게해야할까요?
도와주세요!
참고 : 내부적으로
- : 외부
$this->hidden[] = 'translation_of';
- :
$model->setHidden(array_merge($model->getHidden(), ['translation_of']));