Я есть: n отношений между Regions
и Trees
, с сводной таблицей tree_region;
Модель региона:
class Region extends Model
{
protected $table = 'regions';
public function trees()
{
return $this->belongsToMany( 'App\Models\Trees', 'tree_region', 'idTree', 'region' );
}
}
Модель дерева:
class Tree extends Model
{
protected $table = 'trees';
public function regions() {
return $this->belongsToMany( 'App\Models\Region', 'tree_region', 'region', 'idTree' );
}
}
В TreesController у меня есть функция, которую я использую для поиска деревьев по регионам:
public function treesByRegion(Request $request){
$region = $request->region;
$trees = Tree::whereHas('regions', function (Builder $query) use($region){
$query->where('name', 'like','%'.$region.'%' );
})->with('regions')->get();
return response()->json(count($trees));
}
Например, если я передаю строку, представленную в БД, результат отличается от:
SELECT count(*) FROM `tree_region` WHERE `region`=1
Выполняется через сводную таблицу db с тем же идентификатором, что и в строке «регионы».Что я не так?