Hello,
I want to make GRUD generated code to work with multilingual fields.
I have object table with primary key id and some other fields, and object_lang table with objectId field that links to object table, lang field that stores language and name, title, description fields with translated information about object table record.
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'language' in 'where clause'
The SQL being executed was: SELECT * FROM `object_lang` WHERE (`language`='uk') AND (`objectId`=1)
I believe, query should be this: "SELECT * FROM object_lang WHERE (lang='uk') AND (objectId=1)", because I added 'languageField' => 'lang', option to behavior configuration.
If I change model's find method to this:
public static function find()
{
//return (new \omgdef\multilingual\MultilingualQuery(get_called_class()))->localized();
return (new \omgdef\multilingual\MultilingualQuery(get_called_class()))->multilingual();
}
Then everything works, as expected, multilingual() method respects languageField setting.
In my application language is passed in url, so I do not want my model to have both description, description_uk, description_ru and description_en fields by default. These fields could have a huge html inside and unnecessary translated data can cause a performance problems.
Hello, I want to make GRUD generated code to work with multilingual fields. I have
object
table with primary keyid
and some other fields, andobject_lang
table withobjectId
field that links toobject
table,lang
field that stores language andname
,title
,description
fields with translated information aboutobject
table record.I changed generated Object model class:
And get error, when trying to view object record:
I believe, query should be this: "SELECT * FROM object_lang WHERE (lang='uk') AND (objectId=1)", because I added
'languageField' => 'lang',
option to behavior configuration.If I change model's
find
method to this:Then everything works, as expected,
multilingual()
method respects languageField setting. In my application language is passed in url, so I do not want my model to have bothdescription
,description_uk
,description_ru
anddescription_en
fields by default. These fields could have a huge html inside and unnecessary translated data can cause a performance problems.