问题描述
我有 3 个表:legalpursuit、guarantors、guarantors_legalpursuit。我的项目中有多对多的关系。 我将legalpursuit_id 保存在legalpursuit 中/ guarantors_id 中保存在guarantors / 中,并且两者都保存在guarantors_legalpursuit 中。
我正在使用 Laravel 8。 我怎样才能显示每个帖子的标签?如何从 tag_post 表中选择数据? 我使用它如下。但它没有得到数据。
这是我的 Legalpursuit 模式:
public function guarantorses()
{
//return $this->belongsToMany(RelatedModel,pivot_table_name,foreign_key_of_current_model_in_pivot_table,foreign_key_of_other_model_in_pivot_table);
return $this->belongsToMany(Guarantors::class,'guarantors_legalpursuit','legalpursuit_id','guarantors_id');
}
这是我的担保人模型:
public function legalpursuits()
{
//return $this->belongsToMany(RelatedModel,foreign_key_of_other_model_in_pivot_table);
return $this->belongsToMany(LegalPursuit::class,'guarantors_id','legalpursuit_id');
}
这是我的控制器:
public function edit(LegalPursuit $legalPursuit,$id)
{
$user = Auth::user();
$data = LegalPursuit::find($id);
$guarantors = $data->guarantorses()->orderBy('name')->get();
$lawyers = $data->lawyers()->orderBy('name')->get();
dd($guarantors);
$filesPursuit = LegalPursuit::find($id)->files;
$getLawyersLeft = DB::table('users')->where('user_type','2')
->where('active','1')
->where('deleted','0')
->take('5')
->get();
return view('pages.legalpursuit.edit',compact('data','getLawyersLeft','filesPursuit','user'));
}
解决方法
没有不同的表名,它实际上完全遵循;
protected $table = 'guarantors';
表的字段如下;
table name; guarantors
field: ID
field: name
枢轴标签名称和详细信息;
table name; guarantors_legalpursuit
id;
guarantors_id
legalpursuit_id
I can also do the adding process successfully as follows.
$guarantorArray = $request->input('GUARANTORS');
//$GuarantorsID = Guarantors::find($guarantorArray);
$data->guarantorses()->attach($guarantorArray);
但我无法提取关系数据。它不会出错。但是虽然表中有数据,但是数组感觉是空的。