2016-06-16 3 views
1

laravel 프레임 워크에서 삼자 관계를 만들어야합니다.laravel 프레임 워크에서 삼자 관계를 만드는 법

세 모델을 고려하십시오. 카드, 메모, 사용자.

카드는 노트와 사용자와 관련되어 있지만 서로 관련되어 있습니다. 이제 관계 선박의 초안이 될 모델에서, 카드 -> belongTo -> 노트 Notes-> hasMany의 -> 카드

카드와 사용자 사이의 관계가 만들어 질 때 문제는 위의 규칙을 유지하다 , 연결이 이루어지지 않습니다.

사용자 -> hasMany -> 카드; 카드 -> belongsTo -> 사용자.

스택 트레이스 :

1/1 MethodNotAllowedHttpException in RouteCollection.php line 218: 

    in RouteCollection.php line 218 
    at RouteCollection->methodNotAllowed(array('POST')) in RouteCollection.php line 205 
    at RouteCollection->getRouteForMethods(object(Request), array('POST')) in RouteCollection.php line 158 
    at RouteCollection->match(object(Request)) in Router.php line 821 
    at Router->findRoute(object(Request)) in Router.php line 691 
    at Router->dispatchToRoute(object(Request)) in Router.php line 675 
    at Router->dispatch(object(Request)) in Kernel.php line 246 
    at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) 
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52 
    at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 44 
    at CheckForMaintenanceMode->handle(object(Request), object(Closure)) 
    at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136 
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) 
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32 
    at Pipeline->Illuminate\Routing\{closure}(object(Request)) 
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 102 
    at Pipeline->then(object(Closure)) in Kernel.php line 132 
    at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 99 
    at Kernel->handle(object(Request)) in index.php line 53 
    at require_once('/home/sayali/people_finder/public/index.php') in server.php line 21 

내 user.php -있는 FUNC 카드 cards.php에서

public function cards() 
{ 
    return $this->hasMany(Note::class); 
} 

당신의 스택 트레이스를 바탕으로
public function user() 
{ 
    return $this->belongsTo(User::class); 
} 
+0

양방향 관계가 필요한 이유를 실제로 이해하지는 않지만 기본적으로 동일한 변경 사항을 덮어 쓰는 것입니다. 먼저 사용자에게 카드를주고 그 카드에 사용자가 있다고 이야기합니다. 그게 똑같지, 그렇지? – Loek

+0

그 질문 부분입니다, 나는 많은 사용자 카드를 할당하지만, 그 후 특정 카드에서 사용자에게 액세스하려고하면 그것의 던지는 MethodNotAllowedHttpException. –

+0

사용자에게 많은 카드를 할당하고 카드에 1 명의 사용자를 할당합니다. 그건 정말 다른 것입니다. 스택 트레이스를 붙여 넣을 수 있습니까? 경로에 문제가있을 수 있습니다. – Loek

답변

0

, 당신은 제출하지 않을를 POST 요청의 정보 또는 POST 요청에서 라우트가 응답하지 않습니다. Check this thread on the Laravel forums for some more explanation.

기본적으로 양식 제출 방법과 경로 응답 방법이 동일한 지 확인하십시오.

저는 아직도 당신의 삼위 일체 적 관계의 큰 지지자는 아닙니다. 모든 카드에 사용자를 부여하거나 사용자에게 모든 카드를 제공 한 다음 거기에서 작업 할 수 있습니다. 내 경험상 양방향 관계가 엉망이됩니다.

관련 문제