2016-10-02 4 views
0

내가 일을 내 구독 피벗 테이블을 얻으려고하지만 ketting이 오류가 계속 :Laravel morphTo 관계

Illuminate\Database\QueryException with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'subscription_type' in 'field list' (SQL: update `topic` set `updated_at` = 2016-10-02 18:06:49, `subscription_type` = App\Square\Users\User, `subscription_id` = 1 where `id` = 1)' 

그래서있어 3 개 테이블 :

User 
Subscription 
Topic 

사용자 수를 주제를 구독하십시오. 이 구독 테이블이 같은 모습입니다 다음 User 모델

Schema::create('subscription', function (Blueprint $table) { 
    $table->increments('id'); 
    $table->integer('user_id')->index(); 
    $table->integer('subscription_id'); 
    $table->string('subscription_type'); 
    $table->timestamps(); 

    $table->unique(['user_id', 'subscription_id', 'subscription_type']); 
}); 

나의 관계 :

public function subscriptions() 
{ 
    return $this->morphMany(Subscription::class, 'subscription'); 
} 

그래서 내가 php artisan tinker이를하려고하면

App\Square\Users\User::first()->subscriptions()->save(App\Square\Topics\Topic::first()); 

내가 오류가 나타납니다! 내가 도대체 ​​뭘 잘못하고있는 겁니까? (좀 더 많은 것들을 위해 사용해야하기 때문에이 다형성 테이블이 필요합니다.)

답변

0

$ table-> morphs ('subscription');을 사용해야하는 것처럼 보입니다.

이렇게하면 id와 type에 대한 두 개의 열이 자동으로 만들어지고 관계가 적용됩니다.

모르 프와 관련된 질문에 대한 답변을 찾고 있었지만 답변을 얻지 못했습니다. 그것은 정말로 늦은 응답이지만, 바라건대 해결책입니다.