Как подключить Car_type, Model и Mark Car Laravel mysql - PullRequest
0 голосов
/ 14 марта 2019

У меня есть тип автомобиля, марка и модель стола. Когда пользователь выбирает тип автомобиля, он получает Audi, Bmw, Mercedes. При выборе Audi, он получает только модели для Audi и A1, A2, A3. Если bmw win получает модели X6, X4. У меня три стола 1. Введите с автомобиля. (На данный момент только Автомобиль последний будет, возможно, велосипед) 2. Марк 3. Модель

Как связать эти три таблицы с Laravel eloquent?

Ответы [ 2 ]

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

Допустим, у вас есть модель

CarType для таблицы Типы автомобилей CarBrand для таблицы car_brands и CarModel для таблицы car_models

Вы можете использовать Eloquent: отношения для достижения этой цели

В вашей модели CarType

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class CarType extends Model
  {
    /**
     * Get the brands for the car .
     */
    public function brands()
  {
    return $this->hasMany('App\CarBrand');
  }
}

В вашей модели CarBrand вы можете выбрать тип автомобиля, к которому относится марка

<?php

 namespace App;

 use Illuminate\Database\Eloquent\Model;

 class CarBrand extends Model
 {
   /**
   * Get the car that owns the brand.
   */
  public function carType()
  {
    return $this->belongsTo('App\CarType');
  }
}

например, вы можете сделать

$car = Car->find(1); // to get car with ID 1.
$brands = $car->brands; // brands of the selected car. You can loop through now

Также для бренда можно сделать

$brand = Brand->find(1) // For Brand ID 1
$car = $brand->carType;

Вы можете проверить Красноречивые отношения

0 голосов
/ 14 марта 2019
--- car_types ---
id        name
1         sedan
2         hatchback
3         sport
4         suv

-- car_brands ---
id        name
1         bmw
2         mercedes
3         audi

-- car_models --
id        brand_id    model_name  car_type
1         3           A1          1
2         3           A2          1
3         3           A3          1
4         3           Q7          4
5         1           X5          4
6         1           X6          4
7         1           X7          4
8         2           AMG         3
9         3           A1          2


-- cars --
id model_id brand_id model_year name             ...other fields
1  1        3        2018       Audi A1 1.0 2018
2  3        3        2017       Audi A3 1.6 2017

on cars table brand_id* is optional foreign key as shortcut for reaching car's brand.

Отношения:

  1. Тип автомобиля имеет много Модели автомобилей. (иностранный: car_models.car_type> car_types.id)
  2. Марка автомобиля имеет множество моделей автомобилей. (иностранный: car_models.brand_id> car_brands.id)
  3. Автомобиль принадлежит к Модель автомобиля. (иностранный: cars.model_id> car_models.id)
  4. Автомобиль принадлежит к Марка автомобиля. (иностранный: cars.brand_id> car_brands.id)
...