【发布时间】:2016-01-08 17:11:54
【问题描述】:
我一直在到处搜索,但找不到解决方案。我想加入 SilverStripe 中的两个表。很简单:
class Module extends DataObject {
...
static $has_one = array(
'Website' => 'Website'
);
...
}
class Website extends DataObject {
...
static $has_many = array(
'Modules' => 'Module'
);
...
}
我想加入这两个,并在一个 DataList 中获取所有属性。 leftJoin() 函数不会做任何事情,并且在他们的网站上提到
传递 $join 语句将通过针对外表执行的 JOIN 进一步过滤结果。它不会返回额外连接的数据。
我尝试使用原始查询
DB::query('SELECT * FROM "Module" LEFT JOIN "Website" ON "Website"."ID" = "Module"."WebsiteID"');
但我得到的只是这个
MySQLQuery 对象 ( [handle:protected] => mysqli_result 对象 ( [current_field] => 0 [field_count] => 19 [lengths] => [num_rows] => 5 [type] => 0 ) [currentRecord:protected ] => [rowNum:protected] => -1 [queryHasBegun:protected] => )
有人知道怎么做吗?谢谢!
【问题讨论】:
-
第一:这与 jquery 无关,第二:您使用原始查询,您将获得查询对象 - 所以从那里开始:docs.silverstripe.org/en/2.4/reference/sqlquery
-
抱歉,我把它误认为是“查询”。我试过 SQLQuery(),但它给了我与使用原始查询相同的结果。我正在使用 SS 3.2 顺便说一句。
标签: silverstripe