Как подключиться через красноречивое отношение в таблице Laravel Type_Vehicle, Mark, Model table - PullRequest
0 голосов
/ 15 марта 2019

Мне нужно сделать 3 выпадающих.При выборе Vehicle_Type, только Автомобиль получит его.Когда выбрано Vehicle_type = Car, выбирается Mark, например, Audi, Bmw, Mercedes.Когда выбран Mark, выбирается модель, но модель должна быть, например, если я выбрал Audi, чтобы получить A3, A4, A5.Если пользователь выбирает BMW, он получает его как модель 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
{
    ??????
}

1 Ответ

0 голосов
/ 15 марта 2019

Возможно, вам не нужен идентификатор car_type_id в таблице car_models:

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);
    }
}
...