2016-06-06 11 views
1

모델 관계의 관계를 삭제하려고합니다. 그게 말이 되면?Laravel 5.2에서 관계 관계 삭제

$post->comments()->activities()->delete();

그래서 내 게시물 모델은 의견을 가지고 있으며, 의견은 활동이있다.

Call to undefined method Illuminate\Database\Query\Builder::activities()

나는이 작품 것을 알고 : 나는 이것을 실행하려고 할 때마다, 나는이 오류가

$post->load('comments.activities'); 

foreach ($post->comments as $comment) { 
    $comment->activities()->delete(); 
    $comment->delete(); 
} 

하지만 최초의 솔루션 청소기 보이는 생각합니다. 아무도 왜 이것이 작동하지 않을지 알고 있습니까? 감사.

편집

포스트 모델에 관계 방법 (다형성 게시물에 대한 의견과 의견에 대한 의견이 있기 때문에).

public function comments() 
{ 
    return $this->morphMany('App\Models\Comment', 'commentable'); 
} 

코멘트 모델 (여러 모델에서 활동을 사용하기 때문에 다형성)의 관계 메소드.

public function activities() 
{ 
    return $this->morphMany('App\Models\Activity', 'subject'); 
} 
+0

이 유 노선의 방법을 선언 한 두 모델이있는 경우에만 물론

$post->comments->activities()->delete(); 

이 작동됩니다 시도? –

+0

@Vicky 나는 경로 방법이이 문제와 관련이 없다고 생각한다. –

+0

우리 모델의 관계 방법을 볼 수 있습니까? – huuuk

답변

0

작성하기 전에 표를 정의 했습니까 ??

protected $table = 'posts'; 

문제에 대해 좀 자세히 설명해 주실 수 있습니까?

1

는 일대 다 관계

+0

이전에 시도했지만 다른 오류가 발생합니다. '방법 활동이 존재하지 않습니다 .'. 다형성 관계를 사용합니다. –

+0

Laravel에는'morphManyThrough' 관계가없는 것으로 보입니다. 그래서 한눈에 foreach 루프를 사용한 접근 방식이 적절하다고 생각합니다. – huuuk