gpt4 book ai didi

mysql - 为什么在 Laravel 5.3 中调用 onetoMany 关系会抛出未定义属性错误?

转载 作者:行者123 更新时间:2023-11-29 11:09:47 25 4
gpt4 key购买 nike

我试图弄清楚 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');
}

Controller :

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');
}


}

Blade 打印测试数据:

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

尝试过这个,绝对行不通:

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

@Endforeach

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

tag_user

数据的存储方式如下:

tags

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

prefs

是的,我继承了这个,所以到处都是。鉴于截止日期临近,我正在尽我所能进行清理工作。但我仍在学习自动化流程,并且我会小心避免可能破坏数据。

最佳答案

看起来您的 $loc->ministry_prefs_user 返回一个集合,因此您可以将其 foreach 如下:

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

关于mysql - 为什么在 Laravel 5.3 中调用 onetoMany 关系会抛出未定义属性错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40799079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com