【发布时间】:2021-03-29 07:36:09
【问题描述】:
我有 3 张桌子:legalpursuit,担保人,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, pivot_table_name, foreign_key_of_current_model_in_pivot_table, foreign_key_of_other_model_in_pivot_table);
return $this->belongsToMany(LegalPursuit::class,'guarantors_legalpursuit','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 = 'guarantorses';。你可能已经这样做了。如果没有,Laravel 将遵循它自己的协议,因此'guarantors_id'不会转换为表名'guarantorses'。乍一看,您的模型和关系没有任何问题。 -
受保护的 $table = '担保人';
标签: php laravel laravel-8 has-and-belongs-to-many