분류 광고 플랫폼을 사용하고 있으며 관련성에 문제가 있습니다. 나는 모든 것을 올바르게 설정했다고 생각하지만 여전히이 문제가 있습니다.Laravel : 카테고리의 부모를 얻을 수 없습니다.
이 시나리오는 이것이다 : 내가 가진 모델 카테고리 folowing 관계와 (앱 \ 카테고리가)
class Category extends Model
{
public function parent() {
return $this->belongsTo('App\Category', 'parent_id');
}
public function children() {
return $this->hasMany('App\Category', 'parent_id');
}
public function adverts() {
return $this->hasMany('App\Advert');
}
}
나는 또한 모델 고라가있는 하위 범주를 형성하기 위해 (App \ Advert) 다음과 같은 관계로
class Advert extends Model
{
public function category() {
return $this->belongsTo('App\Category');
}
public function user() {
return $this->belongsTo('App\User');
}
}
,210
그리고 마지막으로 내가 가진 다음과 같은 관계를 가진 모델 사용자 (앱 \ 고라)
class User extends Authenticatable
{
public function adverts() {
return $this->hasMany('App\Advert');
}
}
나는이
$adverts = $user->adverts()->with('category')->with('category.parent')->get();
같은 컨트롤러 내 컬렉션의 광고를 수집하고 내가 직면하고있는 문제는 해당 문제를 겪고있는 해당 하위 카테고리와 함께 속한 광고 및 카테고리를 출력하려고 할 때입니다.
다음 줄에Trying to get property of non-object (View:
..\resources\views\user\profile.blade.php)
$ad->category->parent->name . '/' . $ad->category->name
내가 범주와 하위 범주와 함께 모든 광고와의 관계를 볼 수있는 컬렉션을 dd는 ...하지만 난이 난 같은 출력을하려고 할 때 이 오류가 발생했습니다 비 객체의 속성을 얻으려고 시도합니다
도움말 누구입니까? 감사합니다
흠이 모음을 얻고있는 것 같다 또는 사용자가 있는지 확인해야합니다 어떤 광고가없는 사용자가있을 수도 있다는 의미의 카테고리가 있습니다. 블레이드 광고를 반복 해보십시오. btw를 사용하면 $ adverts = $ user-> adverts() -> with ('category', 'category.parent') -> get(); –
카테고리가없는 광고 나 상위가없는 카테고리가있는 것처럼 보입니다. 구문에 대해서는 '-> with ('category.parent ')'를 사용할 수 있으며 카테고리를로드합니다. 카테고리가있는 광고 만 가져 오거나 with ('category', function() ...)를 사용하여'whereHas'를 볼 수도 있습니다. – Robert
카테고리에 모두 부모가 있습니까? 그 경우에는 먼저 카테고리에 부모가 있는지 확인한 다음 이름을 표시해야합니다. – MmynameStackflow