Я пытаюсь получить данные от многих до многих отношений. У меня две таблицы:
компаний: [cid, имя, происхождение]
vehicle_types: [id, type]
их сводная таблица: company_vehicle_types: company_id, vehicle_types_id Определенные отношения: В компаниях:
class companies extends Model { // protected $fillable = ['name','origin']; protected $primaryKey = 'cid'; public function vehicles(){ return $this->hasOne('App\vehicles'); } public function vehicle_types(){ return $this->belongsToMany('App\vehicle_types', 'companies_vehicle_types', 'companies_id', 'vehicle_types_id'); } }
В знаках vehicle_types
class vehicle_types extends Model { // protected $fillable = ['type']; public function vehicles(){ return $this->belongsTo('App\vehicles'); } public function companies(){ return $this->belongsToMany('App\companies','companies_vehicle_types','vehicle_types_id','companies_id')->withTimestamps(); } }
Я хочу получить компании, где vehicle_types = конкретный тип. Как я могу это сделать? Я попытался сделать следующее в моем контроллере:
$vehicle_types=vehicle_types::where('type','Bike')->get(); foreach ($vehicle_types as $vehicle_type) { # code... foreach ($vehicle_type->companies as $company) { $brand[]=$company->pivot->name; } } return $brand;
Но, похоже, это не работает. $ vehicle_types работает нормально и возвращает значение. $ brand не возвращает никакой ценности.