/ / Avoir une erreur dans hasManyThrough - laravel, relation

Avoir une erreur dans hasManyThrough - laravel, relation

J'ai un problème lors de l'utilisation de hasManyThrough à Laravel. mes tables:

entrer la description de l'image ici

Dans le modèle de branche j'ai ce

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

et en route j'ai cette

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

et obtenez cette erreur:

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)

Réponses:

0 pour la réponse № 1

Il n’ya pas de disposition pour utiliser hasManyThrough() dans la relation plusieurs à plusieurs. Mais vous pouvez y parvenir en utilisant soit DB::raw() ou vous pouvez ajouter la fonction suivante à votre modèle de base comme indiqué dans cette forum.

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);
}