【问题标题】:Laravel BelongsTo confusionLaravel 属于混乱
【发布时间】:2021-02-22 04:51:59
【问题描述】:

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

EVENT 属于 Major 和 Major HasMany 事件

这是我在 MySQl 中的表格

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();

在我看来,我无法根据关系到达专业表:

   @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,为什么我不应该使用上面提到的第一个查询。

【问题讨论】:

  • 欢迎来到 SO .. 根据你们的关系,一切都是正确的。我认为您需要在 Event.php 中添加 belongsTo
  • 我们能看到模型上的关系吗?
  • 我已经做了如下: public function major() { return $this->belongsTo(Major::class); }

标签: laravel relationship laravel-blade belongs-to


【解决方案1】:

24H后终于找到了嘲讽问题!

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

【讨论】:

    【解决方案2】:

    我在控制器中再次尝试

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

    我获取了一个事件,但我无法访问它的主要对象!!! 它返回 Null 糊涂了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-17
      • 2020-06-13
      • 1970-01-01
      • 1970-01-01
      • 2012-12-26
      相关资源
      最近更新 更多