/ / Имате грешка в hasManyThrough - laravel, relationship

Имате грешка в hasManyThrough - ларавел, връзка

Имам проблем, когато използвам hasManyThrough в Laravel. моите маси:

въведете описанието на изображението тук

В модела на клона имам това

public function works()
{
return $this->hasManyThrough("AppWork", "AppField","branch_id","field_id");
}

и по маршрута имам това

$b= AppBranch::all()->first();
dd($b->works()->get());

и да получите тази грешка:

SQLSTATE[42S22]: Column not found: 1054 Unknown column "fields.branch_id" in "field list" (SQL: select `works`.*, `fields`.`branch_id` from `works` inner join `fields` on `fields`.`id` = `works`.`field_id` where `fields`.`branch_id` = 1)

Отговори:

0 за отговор № 1

Няма разпоредба за използване hasManyThrough() в отношение много към много. Но можете да постигнете това, като използвате и двете DB::raw() или можете да добавите следната функция към вашия BaseModel, както е дадено в това форум.

public function manyThroughMany($related, $through, $firstKey, $secondKey, $pivotKey)
{
$model = new $related;
$table = $model->getTable();
$throughModel = new $through;
$pivot = $throughModel->getTable();

return $model
->join($pivot, $pivot . "." . $pivotKey, "=", $table . "." . $secondKey)
->select($table . ".*")
->where($pivot . "." . $firstKey, "=", $this->id);
}