【问题标题】:Why does calling a onetoMany relationship in Laravel 5.3 throw a undefined property error?为什么在 Laravel 5.3 中调用 onetoMany 关系会引发未定义的属性错误?
【发布时间】:2016-11-25 06:39:08
【问题描述】:

我试图弄清楚 Laravel 如何处理数据透视表。我快到了,然后弹出这个错误:

Undefined property: Illuminate\Database\Eloquent\Collection::$subcategory 

我 99% 确定这是因为我没有正确调用关系,因此它无法从对象中提取数据。然而,因为 Laravel 有一种非常神秘的方式来做枢轴,并且经过数小时的文档、教程和解释的拖网。我仍然对如何实现这种关系感到迷茫。 这就是我到目前为止所得到的。我哪里错了?

标签模型:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Ministry_Prefs_User extends Model
{
    protected $table = 'ministry_prefs';

   public function ministry_prefs_user() {

      return  $this->belongsToMany('App\UserEdit', 'tag_user', 'tag_id', 'user_id');
   } 
}

相关用户型号代码:

public function ministry_prefs_user() {

      return  $this->belongsToMany('App\Ministry_Prefs_User', 'tag_user', 'user_id', 'tag_id');
    } 

控制器:

public function show($id)
    {
        try {
         $loc = UserEdit::findorFail($id);
         $array = UserEdit::findorFail($id)->toArray();
         //$prefs = Ministry_Prefs_User::find($id);
         return view('UserEdit', compact('array', 'loc'));
        
         } catch(\Exception $e) {
             return \Redirect::route('users.index')
                ->withMessage('This user does not exist');
         }
         

    }

打印测试数据的刀片:

 {{ $loc->ministry_prefs_user->subcategory }}

试过了,肯定不行:

  @Foreach ($prefs->ministry_prefs_user as $pref)
                {{ $pref->tag }}<br>
                {{ $pref->subcategory }}: {{ $pref->description }}
    
    @Endforeach

tag_user 表看起来有点像这样,外键正确链接(我认为):

数据是这样存储的:

标签引用的表格有点像这样:

是的,我继承了这个,所以到处都是。我正在尽我所能清理最后期限。但我仍在学习自动化流程,并小心避免可能破坏数据。

【问题讨论】:

    标签: mysql database laravel-5 pivot-table


    【解决方案1】:

    看起来你的$loc-&gt;ministry_prefs_user返回了一个集合,所以你可以foreach它为:

    @foreach ($loc->ministry_prefs_user as $pref)
        {{ $pref->tag }}<br>
        {{ $pref->subcategory }}: {{ $pref->description }}
    @endforeach
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-16
      • 1970-01-01
      • 2017-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多