에 정의되어 있지 않은 나는 몇 가지 관련 모델을 가지고 :방법은 쿼리 클래스
Client
id, name, user_id ++
Projects
id, title, client_id, user_id ++
Users
id, name ++
클라이언트는 사용자에게 속하고 클라이언트가 많은 프로젝트를 가지고 있으며, 프로젝트는 클라이언트와 사용자에 속한다.
나는 클라이언트의 프로젝트를 얻을 수있는 다음과 같은 쿼리를 시도
, 나는Method [projects] is not defined on the Query class.
이 무슨 뜻 이죠 말하는 오류가? 이 같은
Client::find(2)->projects
내 모델은 간단하고 같습니다 :
Client::find(2)->where('user_id', '=', Auth::user()->id)->projects() // Throws error
Client::where('id', '=', 2)->where('user_id', '=', Auth::user()->id)->projects() // Also throwing an error
다음 쿼리는 완벽하게 작동합니다 :
<?php
class Client extends Eloquent
{
public static $timestamps = TRUE;
public function user()
{
return $this->belongs_to('User');
}
public function projects()
{
return $this->has_many('Project');
}
}
class Project extends Eloquent
{
public static $timestamps = TRUE;
public function client()
{
return $this->belongs_to('Client');
}
public function user()
{
return $this->belongs_to('User');
}
}
class User extends Eloquent
{
public static $timestamps = TRUE;
public function clients()
{
return $this->has_many('Client');
}
public function projects()
{
return $this->has_many('Project');
}
}
원 왜
나는 다음과 같은 쿼리를 시도했습니다 Where 절을 사용할 때 작동합니까? where 절을 사용하지 않을 때 작동하지만 user_id에서 프로젝트와 클라이언트를 필터링해야합니다. (내 계획은 회사에 연결된 여러 사용자가 모든 프로젝트와 클라이언트를 볼 수 있도록하는 것입니다.)
어쩌면 그것은이다 ,이게 아니야? – rMX