Я пытаюсь получить отдел, частью которого является модуль в laravel, например:
Это мой факультет класс:
<?php
class Faculty extends Eloquent {
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'faculty';
public $timestamps = false;
/**
* Whitelisted model properties for mass assignment.
*
* @var array
*/
protected $primaryKey='facultyid';
protected $fillable = array('facultyname', 'facultyshort');
public function departments()
{
return $this->hasMany('Departments', 'facultyid');
}
}
Это мой класс отделов
<?php
class Departments extends Eloquent {
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'departments';
public $timestamps = false;
/**
* Whitelisted model properties for mass assignment.
*
* @var array
*/
protected $primaryKey='departmentid';
protected $foreignKey='facultyid';
protected $fillable = array('departmentname', 'departmenthead', 'facultyid');
public function modules()
{
return $this->hasMany('Modules', 'departmentid');
}
public function faculty()
{
return $this->belongsTo('Faculty', 'facultyid');
}
}
и, наконец, это мой класс модулей:
<?php
class Modules extends Eloquent {
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'modules';
protected $foreignKey='departmentid';
public $timestamps = false;
/**
* Whitelisted model properties for mass assignment.
*
* @var array
*/
protected $primaryKey='mid';
protected $fillable = array('mfulltitle', 'mshorttitle', 'mcode',
'mcrn', 'mfieldofstudy', 'mcoordinator','mlevel',
'mcredits', 'melective', 'departmentid');
public function department()
{
return $this->belongsTo('Departments', 'departmentid');
}
public function classes()
{
return $this->hasMany('Classes', 'moduleid')->orderBy('classid', 'ASC');
}
}
Я пытался сделать что-то вроде этого:
@foreach(Modules::where('melective', '=', 1)->get() as $mod)
{{$mod->mshorttitle}} belongs to department: {{ $mod->department->departmentname }}
@endforeach
Но это не работает, у кого-нибудь есть идеи как это сделать?
==============================
РЕШЕНИЕ
После небольшой работы я понял это
в классе отдела я добавил следующую функцию:
public function name()
{
return $this->departmentname;
}
и я изменил код на следующее:
@foreach(Modules::where('melective', '=', 1)->get() as $mod)
{{$mod->mshorttitle}} belongs to department: {{ $mod->department->name() }}
@endforeach
Задача ещё не решена.
Других решений пока нет …