wertelko / doctrine-easy-join
Easy join for doctrine
v1.0.1
2025-04-19 14:17 UTC
Requires
- doctrine/orm: ^2.14
README
This is a simple package for doctrine/orm
that allows you to use JoinTrain for repository to simplify certain joins.
JoinTrait
Enables fetching entities along with others.
Repository:
class CategoryRepository extends ServiceEntityRepository { use JoinTrait; // <-- add trait public function __construct(ManagerRegistry $registry) { parent::__construct($registry, Category::class); } // Other methods }
Our service or controller
class CategoryController extends AbstractController { public function __construct( private readonly CategoryRepository $categoryRepository, ) { } public function index(): Response { $category = $this->categoryRepository ->join([ // load eager with products and products images 'products', // <-- $category->getProducts() is initialized 'products.image' // <-- $category->getProducts()->first()->getImage() is initialized too ]) ->getQuery() ->getResult(); return $this->json($category); } }
Also you can set other parameters for join()
//code $this->categoryRepository ->join( $fields, // Array of fields $joinType, // String of join type ['left', 'inner'] $qb, // QueryBuilder ) //code