Laravel 5 имеет много проблем

Я пять дней в Laravel и после нескольких часов просмотра Jeffrey Way, я решил углубиться в создание приложения для обучения. Я застрял в точке работы с таблицами в макете hasManyThrough и не найденном классе. Любая помощь приветствуется.

Я пытаюсь получить:

Отдельный список спецификаций кабелей, которые разрешены с выбранным параметром cable_installation_method

Спасибо!

ТАБЛИЦА 1: характеристики кабеля

cable_specifications_id (REPEATS)
other_columns...

ТАБЛИЦА 2: Cable_installation_methods

cable_installation_methods_id (UNIQUE)
other_columns...

ТАБЛИЦА 3: кабель_установки (PIVOT)

cable_specifications_id (REPEATS)
cable_installation_methods_id (REPEATS)

Мои занятия:

use Illuminate\Database\Eloquent\Model as Eloquent;

class CableInstallation extends Eloquent {

protected $table = 'cable_installations';

protected $fillable = [];

public function cable_installation_method()
{
return $this->belongsTo('CableInstallationMethod');
}

public function cable_specification()
{
return $this->belongsToMany('CableSpecifications');
}

public function voltage_drop()
{
return $this->belongsToMany('CableVoltageDrop');
}

}class CableInstallationMethod extends Eloquent {

protected $table = 'cable_installation_methods';

protected $fillable = [];

public function CableInstallation()
{
return $this->hasMany('CableInstallation');
}

public function CableSpecByInstall()
{
return $this->hasManyThrough('CableSpecification', 'CableInstallation', 'cable_specifications_id', 'cable_installations_id')
->distinct();
}

}

class CableSpecification extends Eloquent {

protected $table = 'cable_specifications';

protected $fillable = [];

public function CableInstallFromSpec()
{
return $this->hasMany('CableInstallation');
}

}

В моем контроллере я вызываю эту функцию согласно ниже:

public function VoltageDropLoad()
{
$InstallationMethods = CableInstallationMethod::all();

$CableSelected =  CableInstallationMethod::where("cable_installation_methods_id", 1)->firstOrFail();

$CableTypes = $CableSelected->CableSpecByInstall()->toJson();

return view('pages.voltcalc', compact('InstallationMethods', 'CableTypes', 'CableTypes'));
}

Я в конечном итоге с этой ошибкой:

FatalErrorException в Model.php, строка 911:
Класс ‘CableInstallation’ не найден

0

Решение

Вы еще не получили свой «кабель». Пытаться:

$CableSelected = CableInstallationMethod::where("cable_installation_methods_id", 1)->firstOrFail();

Просто чтобы прояснить это немного. Ваша кабельная установка в данном случае не является осью (по моим расчетам). Это просто еще одна модель, которая содержит отношения к двум другим. Сводная таблица обычно не имеет модели и используется для множества отношений.

Например; что-то вроде cable_installers за cable_installations где вы можете иметь несколько инсталляторов, работающих на кабельных установках. В этом случае «установщики» будут моделью (с таблицей), «установки» будут моделью (таблица уже предоставлена) и installations_installers будет сводная таблица, в которой хранится отношение.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]