2016-10-08 4 views
0

есть контроллер Cars. Позволяет называть это лицо Автомобили.Библиотека помощника VS в Ларавеле?

Каждый автомобиль имеет вид: 0 => car, 1 => truck и т.д.

модель Car содержимое полей:

id | type | engine 
1  1  2 

Таким образом, из этой таблицы я знаю, что автомобиль грузовик на type поле.

Когда я получаю все строки из таблицы Автомобили:

$cars = Cars:all(); 

я беру тип поля в формате целого числа, но мне нужно, чтобы получить строку, вместо 1 я sholud получить Truck.

У меня есть несколько способов сделать это:

  • Используйте with() и подключить настольный автомобиль со столом type_car
  • Использование Helper Класс, который получает все type_Car в массиве, после возврата элемента по ключу в массиве
  • Использование библиотеки в Ларавеле, что то же самое, что и помощник

Что вы рекомендуете мне использовать?

ответ

0

Это пример использования отношений. У автомобиля будет «Тип», который будет представлять собой еще одну таблицу под названием types. Вы изменили бы поле type на type_id (по умолчанию метод eloquent сохраняет отношения - есть способы изменить это, но я бы рекомендовал использовать этот способ).

class Car extends Model { 

    public function type() 
    { 
     return $this->belongsTo('App\Type'); 
    } 
} 

class Type extends Model { 

    public function cars() 
    { 
     return $this->hasMany('App\Car'); 
    } 
} 
+0

А как называют это в модели автомобиля? – Samed

+0

вы бы назвали '$ car = Car :: с ('type') -> find (1);' - затем получите доступ к типу с '$ car-> type-> name' (в зависимости от свойств вашего' Модель типа. – swatkins

0

Просто используйте $car->type(), и вы получите тип, обратите внимание, что вам нужно, чтобы создать другой объект под названием Type, содержащий id и type_description или что-то подобное

Смежные вопросы