Astrotomic / laravel-translatable

A Laravel package for multilingual models

Home Page:https://docs.astrotomic.info/laravel-translatable/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Next level relations translations like hasMany are not lazy loaded

camohub opened this issue · comments

commented

I am not sure if it is a bug. Hope it is not. The problem is that if I load relations through $with the relation translations are not lazy loaded. It generates huge amount of sql requests one for each relation entity.

  • PHP 8.1
  • Laravel 9
  • aAtrotomic/Laravel-translatable: 11.12.1

We use this package with Spatie/Querybuilder package. But it should be irelevant.

I hope there is a way to set up lazy loading also on relations entities.
lazy

Hi, @camohub. Please, provide your code example for the problem.

Because, if you need to use translations from nested models, in general, case you need to load translations too, for example:

Post::with('postCategories.translation')->get();
// or
Post::with([
  'postCategories' => fn ($query) => $query->withTranslation(),
])

And you say you use Spatie/Querybuilder, explicitly include them, or modify the query how you need:

QueryBuilder::for(Post::class)
    ->with('postCategories.translation')
    ->get();