【发布时间】: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