2013-08-13 3 views
0

У меня есть два класса: степень и колледж,левый присоединиться запрос с красноречивым

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; 
     } 
} 

У меня есть он установлен как belongsTo, потому что он ломает на hasOne(), ошибка:

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' in 'where clause '(SQL: select * from colleges где colleges. id =? limit 1) (Привязки: array (0 => 'UAGSC',))

Это указывает на то, что он игнорирует мой пользовательский ключ, который не является идентификатором и не является целым числом, это специальный буквенный буквенный символ 5 букв.

Может ли кто-нибудь дать мне какие-либо предложения о том, как подойти к этому?

ответ

0

Я решил это, изменив первичный ключ (ID) таблицы колледжа на то же значение, что и для колледжа_code. Идентификатор не является автоматическим приращением или целым числом, я использую уже уникальный идентификатор, который упрощает в долгосрочной перспективе для меня.

0

При подключении используйте первичный ключ. В основном ID.

Сделать основной ключ INT и AUTO INCREMENT.

Вы добьетесь успеха.

Смежные вопросы