一个简单的问题。在我的代码中
客户有很多合作伙伴。如果我想了解客户的详细信息和一个客户有多少合作伙伴。我想做的是,

$customer = Customer::get();
return Partners::get()->filter('CustomerID', $customer->ID);

不幸的是上面的代码对我不起作用,有什么简单的方法可以得到吗。?

最佳答案

@Mifas您仍然会收到错误,因为$customer=customer::get()仍然返回一个数据列表,而不是@Zauberfisch描述的单个客户对象。在调用关系方法之前,您需要确保是针对单个客户调用的。

$customer = Customer::get()->first();
// OR, if you're looking up a specific Customer
$customer = Customer::get()->filter('ID', <custID>)->first();
// If you're looking up by ID only, there is a shortcut that still returns one dataobject only:
$customer = Customer::get()->byID( <custID> );

在这种情况下,以下两行中的任何一行都可以工作(但是关系“魔法”方法@Zauberfisch指出是首选方法)
$partners = $customer->Partners();
// OR
$partners = Partner::get()->filter('CustomerID', $customer->ID);

关于php - SilverStripe:如何使用get()获取所有记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22895709/

10-16 13:26