问题描述
我有很多关系可以正确插入数据,但是当我尝试获取数据时它没有给我任何数据。
一张桌子是老板,另一张桌子是工人
-n
Migration
boss模型关系
<?PHP
public function up()
{
Schema::create('boss_worker',function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('worker_id');
$table->unsignedBigInteger('boss_id');
$table->timestamps();
});
}
我如何尝试获取数据
public function workers()
{
return $this->belongsToMany(\App\Models\Admin\Worker::class,'boss_worker');
}
我如何插入数据
public function index()
{
$boss = Boss::find(1);
dd($boss->workers);
}
它没有获取任何数据
解决方法
使用
public function index()
{
$boss = Boss::with('workers')->find(1);
}
,
当您从要调用的模型中调用关系到 Illuminate\Database\Eloquent\Builder
时,您可以使用 Query Builder 访问和应用任何过滤器或查询,以从该关系中获取数据,您必须使用这些方法执行查询
->get();
->first();
您的代码必须是:
$boss = Boss::find(1);
$workers = $boss->workers()->get();
dd($workers);
或者您可以使用 Boss 模型制作 eager loading
$boss = Boss::with('workers')->find(1);
dd($boss->workers);