>  Q&A  >  본문

laravel 모델은 리소스에서 "whenLoaded()" 관계를 사용할 때 지연 로딩이 예외를 발생시키는 것을 방지합니다.

최근에 사용하기 시작했어요 Model::preventLazyLoading() 하지만 관계가 로드되지 않지만 때로는 로드될 수도 있지만 실제로는 오류가 발생합니다

리소스 좋아요 'discount' => $this->whenLoaded('meta', $this->meta->discount ?? 0),

laravel 버전: 9.17.0

P粉614840363P粉614840363311일 전407

모든 응답(1)나는 대답할 것이다

  • P粉920835423

    P粉9208354232024-01-06 11:06:13

    Let PHP 在此处解析您的语法。无论如何,它都必须加载 $this->meta,因为当 PHP 解析您的代码时,它优先于 whenLoaded() 메소드.

    으아아아

    그래서 whenLoaded() 可以采用 closure() 来避免加载关系,除非它们实际上已加载。此方法将在满足 whenLoaded()컨디션 다음에 클로저를 먼저 평가합니다.

    으아아아

    회신하다
    0
  • 취소회신하다