Laravel 属于混淆

Laravel BelongsTo confusion

我在 EVENT 和 MAJOR 模型之间有一个 OneToMany 关系,如下所示:

EVENT 属于 Major 和 Major HasMany 事件

这是我在 MySQl

中的 table
EVENTS Table :

   id   name          major_id  
    1   liga 1st          1     
    2   liga 2nd          2     

Majors Table :

id  symbol                 name     
1   MTB           xxxxxxxxxxxxxxxxxxxxxxxx  
2   ROAD          yyyyyyyyyyyyyyyyyyyyyyyy  
3   TRACK         zzzzzzzzzzzzzzzzzzzzzzzz

在控制器中,我将所有事件的数据传递给视图,如下所示:

 $events= Event::all();

在我看来,我无法根据关系进入专业 table :

   @foreach($events as $event)
     <option value="">{{$event->major->name }}</option>
    @endforeach

但我尝试使用这段代码并且它有效:

   @foreach($data as $event)
    <option value="">{{$event->major()->first()->name }}</option>
   @endforeach

我的问题是如果每个事件都有一个 Major_id 为什么我不应该使用上面提到的第一个查询。

我在控制器中再次尝试

$data = Event::find(1);
return $data->major;

我获取了一个事件,但我无法访问它的主要对象!!! 它 returns 空 困惑!

24小时后我终于找到了被嘲笑的问题!

我在我的模型中分配了一个 getMajorAttribute() 并且它正在处理输出数据!谢谢