繁体   English   中英

Laravel 属于多返空

[英]Laravel Belongs to many returning empty

我有返回问题属于许多关系。 这是我的场景。 我有“个人”model 和“”model,其中每个人可以属于多个组,每个组可以属于多个用户 使用诸如“localhost/phpmyadmin”之类的数据库蓝图很好,因为我可以单击“group_individual”表上的“组”列,它会返回到“组”表上的相关组。 但是在 Laravel 内部工作,我得到的是空数组。 你能帮我吗? 感谢您的时间。

迁移

Schema::create('groups', function (Blueprint $table) {
    $table->id();
    $table->string('group_id')->unique();
    $table->string('name');
    $table->unsignedBigInteger('members');
    $table->string('url')->nullable();
    $table->timestamps();
});

Schema::create('individuals', function (Blueprint $table) {
    $table->id();
    $table->string('search_id')->unique();
    $table->timestamps();
});

Schema::create('group_individual',function($table){
    $table->id();
    $table->string('group');
    $table->string('individual');
    $table->foreign('group')->references('group_id')->on('groups')->onDelete('cascade');
    $table->string('type');
    $table->foreign('individual')->references('search_id')->on('individuals')->onDelete('cascade');
});

个别model

public function groups():\Illuminate\Database\Eloquent\Relations\BelongsToMany
{
    return $this->belongsToMany(Group::class,'group_individual','individual','group');
}

组 model

public function individuals():\Illuminate\Database\Eloquent\Relations\BelongsToMany
{
    return $this->belongsToMany(Individual::class,'group_individual','group','individual');
}

Controller

public function import(){
    Individual::create([]);
    Group::create([]);
    \DB::table('group_individual')->insert(['group'=>,'individual'=>,'type'=>]);
    $individual=Individual::find(1);
    dd($individual->groups);
}

$individual->groups从上面 controller 返回空数组。

看起来你已经反转了 ID 键,尝试在 belongsToMany 方法中切换“组”和“个人”

我找到了解决方案。 我尝试使用两个表的 id 而不是自定义其他属性。 这是我使用的代码。 我没有使用DB::insert()方法,而是使用attach方法。

迁移

Schema::create('groups', function (Blueprint $table) {
            $table->id();
            $table->string('group_id')->unique();
            $table->string('name');
            $table->unsignedBigInteger('members');
            $table->string('url')->nullable();
            $table->timestamps();
        });
     
    Schema::create('individuals', function (Blueprint $table) {
                $table->id();
                $table->string('search_id')->unique();
                $table->timestamps();
            });
    Schema::create('group_individual',function($table){
               $table->foreignId('group_id')->constrained()->onDelete('cascade');
               $table->foreignId('individual_id')->constrained()->onDelete('cascade');
               $table->string('type');
            });

个别 Model

public function groups(): \Illuminate\Database\Eloquent\Relations\BelongsToMany
    {
        return $this->belongsToMany(Group::class,'group_individual','individual_id','group_id');
    }

组 Model

public function individuals(): \Illuminate\Database\Eloquent\Relations\BelongsToMany
    {
        return $this->belongsToMany(Individual::class,'group_individual','group_id','individual_id');
    }

Controller

$a=Individual::create();
$b=Group::create();
$a->groups()->attach($b->id);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM