Ste*_*uev 6 php arraylist silverstripe
我知道我们可以随机排序DataList以下内容:
$example = Example::get()->sort('RAND()');
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试随机排序时,ArrayList它不起作用.我可以在排序ArrayList的ID DESC,但不能用RAND().
有没有办法ArrayList随机对其项目进行排序?
例:
public function AllTheKits() {
$kits = Versioned::get_by_stage('KitsPage', 'Live');
$kitsArrayList = ArrayList::create();
foreach ($kits as $kit) {
if ($kit->MemberID == Member::currentUserID()) {
$kitsArrayList->push($kit);
}
}
return $kitsArrayList;
}
Run Code Online (Sandbox Code Playgroud)
在一个页面中:
public function getKitsRandom() {
return $this->AllTheKits()->sort('RAND()');
}
Run Code Online (Sandbox Code Playgroud)
这在带有的模板中不起作用 <% loop KitsRandom %>
并不真地。这是我能想到的最好的解决方法:
foreach($myArrayList as $item) {
$item->__Sort = mt_rand();
}
$myArrayList = $myArrayList->sort('__Sort');
Run Code Online (Sandbox Code Playgroud)