Scopes

translatedIn(?string $locale = null)

Returns all posts being translated in english

Post::translatedIn('en')->get();

notTranslatedIn(?string $locale = null)

Returns all posts not being translated in english

Post::notTranslatedIn('en')->get();

translated()

Returns all posts with existing translations

Post::translated()->get();

withTranslation()

Eager loads translation relationship only for the default and fallback (if enabled) locale

Post::withTranslation()->get();

listsTranslations(string $translationField)

Returns an array containing pairs of post ids and the translated title attribute

Post::listsTranslations('title')->get()->toArray();
[
    ['id' => 1, 'title' => 'My first post'],
    ['id' => 2, 'title' => 'My second post']
]

where translation

Filters posts by checking the translation against the given value

whereTranslation(string $translationField, $value, ?string $locale = null)

Post::whereTranslation('title', 'My first post')->first();

orWhereTranslation(string $translationField, $value, ?string $locale = null)

Post::whereTranslation('title', 'My first post')
    ->orWhereTranslation('title', 'My second post')
    ->get();

whereTranslationLike(string $translationField, $value, ?string $locale = null)

Post::whereTranslationLike('title', '%first%')->first();

orWhereTranslationLike(string $translationField, $value, ?string $locale = null)

Post::whereTranslationLike('title', '%first%')
    ->orWhereTranslationLike('title', '%second%')
    ->get();

orderByTranslation(string $translationField, string $sortMethod = 'asc')

Sorts the model by a given translation column value

Post::orderByTranslation('title')->get()

Last updated