왼쪽

2013-08-13 3 views
0
웅변

와 쿼리에 가입 나는 두 개의 클래스가 있습니다 학위와 대학, 나는 그것이 hasOne의()을 나누기 때문에 그것이 belongsTo를로 설정되어왼쪽

class Degree extends Eloquent { 
     public function title(){ 
     return $this->degree_title; 
     } 
     public function college(){ 
     return $this->belongsTo('College','college_code'); 
     } 
} 
class College extends Eloquent { 
     public function title(){ 
     return $this->college_title; 
     } 
} 

을, 오류는 다음과 같습니다

Call to a member function getResults() on a non-object 

하는 경우 그것은 올바른 방향으로 나는 확실하지 않습니다.

제가 해왔 던 것은 슬러그를 사용하여 학위를 검색 한 결과 (더 나은 분석을 위해 만들어 짐), 내가 만든 블레이드에 결과를 전달하는 것입니다.

참고 : 거기에 학위 테이블과 조인하지 않고 대학 테이블, 나는 쿼리를 실행할 수 있습니다 학위에 대한

컨트롤러 :

class DegreeController extends BaseController { 
    public function single($slug) 
     { 
      $degree = Degree::where('slug', '=', $slug)->get(); 
      return View::make('degrees.single', array('degree' => $degree)); 
     } 
} 

단일보기 :

@extends('master') 
{{ -- Single Degree Blade-- }} 
@section('content') 

@foreach($major as $m) 
    <div> 
     <h1>{{ $m->title() }}</p> 
     <p>{{ $m->college->title() }}</p> 
     <p>Holland: {{ $m->holland() }}</p> 
    </div> 
@endforeach 

@stop 

무엇 내가 알고있는 그 $m->college->title() 결과를 사용하고 있습니다 : SQLSTATE [42S22] : 열을 찾을 수 없습니다 : 1054 알 수없는 열 'colleges.id'에서 '조항 '(SQL : select * from colleges 여기서 colleges. id =?

id가 아니며 정수가 아닌 사용자 정의 키를 무시한다는 것을 나타내는 특정 5 문자 varchar입니다.

누구나 내게이 접근 방법에 대한 제안을 줄 수 있습니까?

답변

0

College 테이블의 기본 키 (ID)를 college_code가 참조하는 값으로 변경하여 해결했습니다. ID는 자동 증가 또는 정수가 아니며, 장기적으로 볼 때 쉽게 식별 할 수있는 이미 고유 한 식별자를 사용하고 있습니다.

0

가입시 기본 키를 사용하십시오. 주로 신분증.

기본 키를 INT 및 AUTO INCREMENT로 설정하십시오.

성공하겠습니다.