如何通过Laravel表Type_Vehicle,Mark,Model表中的雄辩关系进行连接

问题描述 投票:0回答:1

我需要做3个下拉菜单。选择Vehicle_Type时,只有Car会获得它。当选择Vehicle_type = Car时,选择Mark作为例如Audi,Bmw,Mercedes。选择标记时,会选择模型,但模型必须是,例如,如果我选择奥迪获得A3,A4,A5。如果用户选择BMW,则将其作为型号X5,X6等。看看下面的表格。问题我需要连接模型并获取查询?至少我认为,这些表中也不应该提到一张车牌表。

Vehicle_type或car_type表:

    Schema::create('car_types', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->timestamps();
    });

标记表:

    Schema::create('marks', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->integer('car_type_id');
        $table->timestamps();
    });

car_models表:

    Schema::create('car_models', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->integer('car_type_id');
        $table->integer('mark_id');
        $table->timestamps();
    });

Car_type型号:

class Car_type extends Model
{
   ??????
}

标记模型:

class Mark extends Model
{
  ??????
}

CarModel型号:

class CarModel extends Model
{
    ??????
}
mysql laravel eloquent relation
1个回答
0
投票

您可能不需要car_models表上的car_type_id:

Schema::create('car_models', function (Blueprint $table) {
    $table->increments('id');
    $table->string('name');
    $table->integer('mark_id');
    $table->timestamps();
});

应该足够了。

Car_type型号:

class Car_type extends Model
{
    public function marks() {
        return $this->hasMany(Mark::class);
    }
}

标记模型:

class Mark extends Model
{
    public function car_type() {
        return $this->belongsTo(Car_type::class);
    }
    public function models() {
        return $this->hasMany(CarModel::class);
    }
}

CarModel型号:

class CarModel extends Model
{
    public function mark()
    {
        return $this->belongsTo(Mark::class);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.