我需要创建3个下拉菜单。选择Vehicle_Type时,只有Car会得到它。当选择Vehicle_type = Car时,将选择Mark,例如Audi,Bmw,Mercedes。当选择Mark时,将选择模型,但是例如,如果我选择Audi来获得A3,A4,A5,则模型必须为模型。如果用户选择宝马,则将其作为X5,X6等车型。看看下面的表格。问题我需要连接模型并获取查询吗? 至少我认为,还有一些不应在这些桌子上提及的汽车桌子。
车辆类型或汽车类型表:
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();
});
汽车类型模型:
class Car_type extends Model
{
??????
}
标记模型:
class Mark extends Model
{
??????
}
CarModel模型:
class CarModel extends Model
{
??????
}
答案 0 :(得分: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();
});
应该足够。
汽车类型模型:
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);
}
}