CakePHP 3 matching
Dość częstym przypadkiem zapytania jest znajdowanie rekordów „pasujących” do konkretnych powiązanych danych. Na przykład, jeśli masz relację Articles belongsToMany Tags, prawdopodobnie będziesz chciał znaleźć artykuły, które mają określony tag, a nie będziesz chciał "selectować" danych z powiązanego modelu. W CakePHP 3 można to zrobić w następujący sposób:
// In a controller or table method.
$query = $articles->find();
$query->matching('Tags', function ($q) {
return $q->where(['Tags.name' => 'nauka']);
});
// In a controller or table method.
$country = 'Japan';
$query = $users->find()->matching(
'Cities.Countries', function ($q) use ($country) {
return $q->where(['Countries.name' => $country]);
}
);
