내 상황은 다음과 같습니다 일정은 고객 또는 세일즈맨는 Laravel - 웅변 : 네임 스페이스
나는 또한 이벤트 및 파일 등의 클래스를 가지고 있기 때문에에 속하는, 나는 내 모든 모델 클래스의 네임 스페이스 앱 \ 모델을 사용했다.
이제 내가 할 때
public function calendars() {
return $this->morphMany('App\Models\Calendar', 'user');
}
$calendar= Calendar::find(1); //calendar from a salesman
$calendar->user; //error here
...
Customer.php 및 Salesman.php에서
public function user() {
return $this->morphTo();
}
Calender.php
에서 :은 그래서 다형성의 관계를 설정
나는 자신의 오류 메시지 :
Symfony \ Component \ Debug \ Exception \ FatalErrorException
Class 'salesman' not found
내가 'salesman'
낮은 어쩌면이 문제는, 맡았다되는 것으로 나타났습니다?
이 내가 Laravels의 스택 트레이스에서 무엇을 얻을
개방 : /var/www/cloudcube/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php
// foreign key name by using the name of the relationship function, which
// when combined with an "_id" should conventionally match the columns.
if (is_null($foreignKey))
{
$foreignKey = snake_case($relation).'_id';
}
$instance = new $related; //HIGHLIGHTED
나는 네임 스페이스를 망칠 때이 줄 앞에 비슷한 오류가 있었기 때문에 그 일과 관련이 있다고 생각한다. 올바른 네임 스페이스를 사용하는 방법을 morphTo()
에게 알릴 방법이 있습니까?
아니면이 문제의 원인이 뭔가요?
또한이 솔루션을 찾았지만이 작업을 얻이 수없는 것 : 나는 나를 위해 일한 해결책을 발견 Polymorphic Eloquent relationships with namespaces
당신이 데이터베이스에 쿼리 중에 삽입되는 것을 볼 쿼리 전송 상황을 확인하기 위해 쿼리를 로그인 할 수 있습니다. – Shafiul
문제는 'advisor'를 찾을 수 없어 쿼리가 실행되지 않는다는 것입니다. 내가 수동으로 (morphTo()를 덮어 씀으로써) 네임 스페이스를 줄 때, 쿼리는 실행되지만 'App \ Models \ Advisor'를 사용하여 타입 값을 확인합니다 ... SUCKS –