반응형
관계 컬렉션을 라벨로 다시 로드하려면 어떻게 해야 합니까?
라라벨에서, 사용 후attach()
또는detach()
관계에서 무언가를 추가하거나 제거하기 위해 컬렉션이 변경되지 않았습니다.그래서 만약 내가 그 관계를 포함하는 모델을 가지고 있다면.[1, 2]
이후:
$model->relation()->detach(1);
$model->relation()->attach(3);
그것은 여전히 포함할 것입니다.[1, 2]
새로 고치려면 어떻게 해야 하나요?
단일 명령으로 라벨에 관계를 로드하도록 쉽게 지시할 수 있습니다.
$model->load('relation');
관계 컬렉션을 새로 고치라고 말할 것입니다.$model->relation
이제 올바른 값이 표시됩니다.
또한 관계를 언로드하는 것은 다음과 같습니다.
$model->unsetRelation('relation')
Laravel 7.x에서 사용할 수 있습니다.$model->refresh()
모델과 관계를 새로 고치기 위한 것입니다.
둘 중 어느 쪽이든unset
요청 시 시스템을 다시 로드할 수 있습니다.
unset($model->relation)
또는
$model->unsetRelation('relation');
그리고 요청에 따라 로드되도록 합니다.
결론: 여기에 포함된 세 가지 솔루션
$model->load('relation');
unset($model->relation);
$freshCollection = $user->roles()->get();`
Murplent 쿼리 작성기를 사용할 수 있습니다.
$freshCollection = $user->roles()->get();
필요에 따라 모든 관계를 강제로 다시 로드하고 모델 내부에 있는 경우 다음을 사용할 수 있습니다.
$this->relations = [];
$model->http:// 나를 위해 그 일을 했습니다.내포된 모형의 여러 수준을 복제한 다음 모형에 대해 반복실험을 수행하려고 했습니다.Laravel은 새로운 "현재" 관계가 아닌 이전 관계를 캐싱하고 있었습니다.
언급URL : https://stackoverflow.com/questions/23364276/how-do-i-reload-a-relation-collection-in-laravel
반응형
'programing' 카테고리의 다른 글
서버에서 받은 메시지를 구문 분석할 수 없습니다. (0) | 2023.08.24 |
---|---|
Spring 및 SLF4J를 구성하여 로깅을 가져오려면 어떻게 해야 합니까? (0) | 2023.08.24 |
Eplus를 사용하여 수정된 엑셀의 실제 사용 범위를 어떻게 얻을 수 있습니까? (0) | 2023.08.24 |
Excel 2007에서 열의 모든 값을 텍스트로 처리 (0) | 2023.08.24 |
그래들을 사용하여 APK 파일 이름에서 versionName을 설정하는 방법은 무엇입니까? (0) | 2023.08.24 |