Hi guys,
i am having problems with translating dataobjects: a few problems (these could completely be user error, so please let me know if i am doing anything wrong):
1 is that CTF's with autorelation turned on creates a relation between a databoject and a pageID. translatable seems to create a second sitetree record with a different ID so all my dataobjects arent tied to the page anymore. any recommendations on how to keep the page-dataobject relation?
the second problem is that i can CRUD dataobjects through the default en_US locale via any CTF, but when i switch to another language, when i try to create, read, or update through the CTF, the popup says 'I can't handle sub-URL's of a CMSMain object.' no errors are caught.
the last problem is that when I add
Object::add_extension('DOArticle', 'Translatable'); // DOArticle is a pretty simple extended DataObject
to mysite/_config.php and rebuild the database i get
[User Error] Couldn't run query: SELECT "DOArticle"."ClassName", "DOArticle"."Created", "DOArticle"."LastEdited", "DOArticle"."SourceOfArticle", "DOArticle"."SourceURL", "DOArticle"."ArticleDate", "DOArticle"."Locale", "DOArticle"."SourceLogoID", "DOArticle"."ID", CASE WHEN "DOArticle"."ClassName" IS NOT NULL THEN "DOArticle"."ClassName" ELSE 'DOArticle' END AS "RecordClassName" FROM "DOArticle" WHERE ("SiteTree"."ID" = 2) LIMIT 1 Unknown column 'SiteTree.ID' in 'where clause'
GET /dev/build
Line 516 in \sapphire\core\model\MySQLDatabase.php
Trace
* Couldn't run query: SELECT "DOArticle"."ClassName", "DOArticle"."Created", "DOArticle"."LastEdited", "DOArticle"."SourceOfArticle", "DOArticle"."SourceURL", "DOArticle"."ArticleDate", "DOArticle"."Locale", "DOArticle"."SourceLogoID", "DOArticle"."ID", CASE WHEN "DOArticle"."ClassName" IS NOT NULL THEN "DOArticle"."ClassName" ELSE 'DOArticle' END AS "RecordClassName" FROM "DOArticle" WHERE ("SiteTree"."ID" = 2) LIMIT 1 Unknown column 'SiteTree.ID' in 'where clause'
Line 516 of MySQLDatabase.php
* MySQLDatabase->databaseError(Couldn't run query: SELECT "DOArticle"."ClassName", "DOArticle"."Created", "DOArticle"."LastEdited", "DOArticle"."SourceOfArticle", "DOArticle"."SourceURL", "DOArticle"."ArticleDate", "DOArticle"."Locale", "DOArticle"."SourceLogoID", "DOArticle"."ID", CASE WHEN "DOArticle"."ClassName" IS NOT NULL THEN "DOArticle"."ClassName" ELSE 'DOArticle' END AS "RecordClassName" FROM "DOArticle" WHERE ("SiteTree"."ID" = 2) LIMIT 1 | Unknown column 'SiteTree.ID' in 'where clause',256)
Line 107 of MySQLDatabase.php
* MySQLDatabase->query(SELECT "DOArticle"."ClassName", "DOArticle"."Created", "DOArticle"."LastEdited", "DOArticle"."SourceOfArticle", "DOArticle"."SourceURL", "DOArticle"."ArticleDate", "DOArticle"."Locale", "DOArticle"."SourceLogoID", "DOArticle"."ID", CASE WHEN "DOArticle"."ClassName" IS NOT NULL THEN "DOArticle"."ClassName" ELSE 'DOArticle' END AS "RecordClassName" FROM "DOArticle" WHERE ("SiteTree"."ID" = 2) LIMIT 1,256)
Line 120 of DB.php
* DB::query(SELECT "DOArticle"."ClassName", "DOArticle"."Created", "DOArticle"."LastEdited", "DOArticle"."SourceOfArticle", "DOArticle"."SourceURL", "DOArticle"."ArticleDate", "DOArticle"."Locale", "DOArticle"."SourceLogoID", "DOArticle"."ID", CASE WHEN "DOArticle"."ClassName" IS NOT NULL THEN "DOArticle"."ClassName" ELSE 'DOArticle' END AS "RecordClassName" FROM "DOArticle" WHERE ("SiteTree"."ID" = 2) LIMIT 1)
Line 396 of SQLQuery.php
* SQLQuery->execute()
Line 2615 of DataObject.php
* DataObject->instance_get_one("SiteTree"."ID" = 2,)
Line 2552 of DataObject.php
* DataObject::get_one(DOArticle,"SiteTree"."ID" = 2,1,)
Line 623 of Versioned.php
* Versioned::get_one_by_stage(DOArticle,Stage,"SiteTree"."ID" = 2)
Line 536 of Translatable.php
* Translatable->requireDefaultRecords(,,,,,,)
Line 749 of Object.php
* Object->extend(requireDefaultRecords,)
Line 2771 of DataObject.php
* DataObject->requireDefaultRecords()
Line 216 of DatabaseAdmin.php
* DatabaseAdmin->doBuild(,1)
Line 103 of DatabaseAdmin.php
* DatabaseAdmin->build()
Line 130 of DevelopmentAdmin.php
* DevelopmentAdmin->build(HTTPRequest)
Line 129 of RequestHandler.php
* RequestHandler->handleRequest(HTTPRequest)
Line 127 of Controller.php
* Controller->handleRequest(HTTPRequest)
Line 280 of Director.php
* Director::handleRequest(HTTPRequest,Session)
Line 121 of Director.php
* Director::direct(/dev/build)
Line 122 of main.php
I'd love to know if i am doing anything wrong with anything.
thanks alot,
-Chris