mysql - 如何通过 Laravel 表 Type_Vehicle、Mark、Model 表中的雄辩关系进行连接
问题描述
我需要做3个下拉菜单。选择车辆type时,只有汽车才能得到它。选择 Vehicle_type = Car 时,选择标记,例如 Audi、Bmw、Mercedes。选择Mark的时候,选择的是车型,但是车型必须是,比如我选了奥迪,得到A3,A4,A5。如果用户选择宝马,则将其作为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
{
??????
}
车型型号:
class CarModel extends Model
{
??????
}
解决方案
您的 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);
}
}
车型型号:
class CarModel extends Model
{
public function mark()
{
return $this->belongsTo(Mark::class);
}
}
推荐阅读
- javascript - 将变量插入模板文字 href 标记
- google-cloud-pubsub - 如何使用 GCP PubSub REST API 创建主题
- excel - 使用名称管理器的 Excel 插件
- go - 有界并发的最简单并发循环
- gradle - 在单个编译依赖项范围内更改传递依赖项版本
- c# - 与 EF Core 联合返回无法转换集合操作,因为两个操作数具有不同的“包含”操作
- ios - 从亮模式到暗模式的颜色变化在真实设备上的 SwiftUI 中不起作用
- java - 如何在 JAVA APP 中使用 Parse Password Reset
- javascript - 移动设备上的引导中心徽章文本
- c# - 如何使地面物体统一跟随飞行物体?