You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
After the upgrade to 11.12 (since we need Laravel 10 support) our translations are broken. The main table using translations has an UUID key used for the getTranslationRelationKey(), so imagine having a table called "properties" with an "uuid" primary key and the translations are stored in property_translations.
To Reproduce
Make sure you're using a postgresql DB
Use any eloquent model that has an uuid primary key, let's say it's called Property. Call the translations method on it:
$p = App\Models\Property::first()
$p->translation
and see the following error:
SQLSTATE[42883]: Undefined function: 7 ERROR: function max(uuid) does not exist
LINE 1: ...\" from \"property_translations\" inner join (select max(\"prope...
Expected behavior
Translations should work as before
Screenshots
If applicable, add screenshots to help explain your problem.
Versions (please complete the following information)
PHP: 8.1
Database: Postgres 12 or 14
Laravel: 10
Package: 11.12.1
Additional context
It's linked to the "translation" call in the Relationship.php trait
New code with error calls 'max' on the ofMany relationship
public function translation(): HasOne
{
return $this
->hasOne($this->getTranslationModelName(), $this->getTranslationRelationKey())
->ofMany([
$this->getTranslationRelationKey() => 'max',
], function (Builder $query): void {
$query->where($this->getLocaleKey(), $this->localeOrFallback());
});
}
Old code which worked did not call max and worked fine
public function translation(): HasOne
{
return $this
->hasOne($this->getTranslationModelName(), $this->getTranslationRelationKey())
->where($this->getLocaleKey(), $this->localeOrFallback());
}
Exception
function max(uuid) does not exist
LINE 1: ...\" from \"property_translations\" inner join (select max(\"prope...
Stack Trace
The full stack trace of the thrown exception.
The text was updated successfully, but these errors were encountered:
Not a bug with the package - as you noted it's based on the max call which isn't supported on PostgreSQL UUIDs. So don't use UUIDs or don't use the translation relationship.
Describe the bug
After the upgrade to 11.12 (since we need Laravel 10 support) our translations are broken. The main table using translations has an UUID key used for the getTranslationRelationKey(), so imagine having a table called "properties" with an "uuid" primary key and the translations are stored in property_translations.
To Reproduce
Make sure you're using a postgresql DB
Use any eloquent model that has an uuid primary key, let's say it's called Property. Call the translations method on it:
and see the following error:
Expected behavior
Translations should work as before
Screenshots
If applicable, add screenshots to help explain your problem.
Versions (please complete the following information)
Additional context
It's linked to the "translation" call in the Relationship.php trait
New code with error calls 'max' on the ofMany relationship
Old code which worked did not call max and worked fine
Exception
Stack Trace
The full stack trace of the thrown exception.
The text was updated successfully, but these errors were encountered: