如何在查询中获得最活跃的博客标签?
我有这两个DataObjects:
class BlogTag extends DataObject {
//...
/**
* @var array
*/
private static $belongs_many_many = array(
'BlogPosts' => 'BlogPost',
);
Run Code Online (Sandbox Code Playgroud)
和
class BlogPost extends Page {
//...
/**
* @var array
*/
private static $many_many = array(
'Tags' => 'BlogTag',
);
Run Code Online (Sandbox Code Playgroud)
现在,我想知道如何获得一个DataList,其中所有的BlogTags都是根据与他们相关的博客帖子排序的.这就是我已经拥有的,但不知怎的,我不知道如何按BlogPosts.Count()排序:
public function getPopularBlogTags($limit = 5) {
$tags = BlogTag::get()
->sort('BlogPosts.Count()') //doesn't work
->limit($limit);
return $tags;
}
Run Code Online (Sandbox Code Playgroud) 嗨,我是SilverStripe的新手.
我$AllCountries想要使用循环在模板中呈现数组.
如果有模型,那么我可以轻松地做到这一点,但我想使用我在这里定义的数组来做到这一点.
Array
(
[AD] => Andorra
[AE] => United Arab Emirates
[AF] => Afghanistan
[AG] => Antigua and Barbuda
[AI] => Anguilla
);
<select name="Country" class="dropdown form-input" id="country">
<% loop $AllCountries %>
<option value="$key">$value</option>
<% end_loop %>
</select>
Run Code Online (Sandbox Code Playgroud)
提前致谢 :)