2014-05-25 1 views
2

나는 그런"비 객체의 속성을 얻으려고 시도하는 중"오류를 제거하는 방법은 무엇입니까? 내 코드의 여러 부분에서

{{ $jobApplication->job->title }} 

으로 지금까지 내가 항상 존재하는 경우에만 데이터를 에코 블레이드 조건을 사용하고, 에코 또는 기타 관련 모델의 데이터를 사용하는 것을 시도하고있다 :

@if (! empty ($jobApplication->job)) 
{{ $jobApplication->job->title }} 
@endif 

... 아프다.

관련 질문 (Laravel 4: fetching only models that have related models)에서 이에 대한 해결 방법은 없다고합니다.

이 예외가 잡힐 수있는 경우 궁금한 유일한 사람이 아닌 것 같습니다 (PHP - How to catch a 'Trying to get property of non-object' error). 그러나 수용된 대답이 지적한 것처럼 "비 목적 객체의 속성을 얻으려고하는 것"도 예외는 아니며 오히려 오류입니다.

관련 모델이 존재하는지 확인하기 위해 절이있는 경우 실제로는 거의 끝없는 양의 을 추가하는 유일한 해결책입니까?

보통,이 오류가 반환 될 때 Laravel이 "null"을 반환하게하려면 어떻게 될까요? 우릴 할 멍청한 짓이야?

+0

다른 해결책이 있습니다. 코드를 더 일찍 만들었습니다. 하지만 IIRC는 블레이드가 실제로 변수 문을 문자열 컨텍스트에 넣는 경우에만 작동합니다.이 문맥 컨텍스트에는 Laravel을 사용하지 않기 때문에 몰라요. – hakre

답변

2

이 뭔가를 시도 할 수 있습니다 :

{{ isset($jobApplication->job) ? $jobApplication->job->title : '' }} 

은 또한이 같은 사용 모델 관련 한 모델 만 가져 오는 수

$jobApplication = JobApplication::has('job')->with('job')->get(); 

이제 $jobApplication는 관련 Job 모델 만있는 모델이 포함되어 만 그들과 관련된 Job 모델을 가진 사람 JobApplication.

체크 Querying Relations.

관련 문제