我有三个表:事件-管理员-依赖关系 它们之间的关系如下: 一个依赖项有很多管理员,一个管理员有很多事件
我试图显示创建事件的管理员所属的依赖项的名称。 我如何从Laravel的这三个表中获取数据?
控制器:
class WelcomeController extends Controller
{
public function evento($slug){
$event = Event::where('slug', $slug)->first();
return view('evento', compact('event'));
}
事件模型:
class Event extends Model
{
protected $fillable = [
'admin_id', 'place_id', 'name', 'slug', 'excerpt', 'body', 'status', 'file'
];
public function admins(){
return $this->belongsTo('App\Admin', 'admin_id');
}
管理员模型:
protected $fillable = [
'name', 'email', 'password', 'cargo', 'dependence_id'
];
public function dependencyAdmin(){
return $this->belongsTo(Dependence::class);
}
依赖模型:
class Dependence extends Model
{
protected $fillable = [
'name', 'slug'
];
public function adminsDependence(){
return $this->hasMany(Admin::class);
}
所以我尝试在视图中显示它,但是它不起作用:
<div class="panel-heading">
Dependencia:
<a href="#">{{$event->admins->dependencyAdmin->name}}</a>
</div>
答案 0 :(得分:0)
问题在于您只在检索事件模型而不加载关系。有关更多说明,请参见here
$event = Event::where('slug', $slug)->first();
$eventAdmins = $event->admins()->get();
$eventAdminDependency = $eventAdmins->dependencyAdmin()->get();