大家好,我要直说了。这就是我想要的:
A 类
B 类
这是我得到的:
我的代码
Controller
$_mongo = new MongoClient();
$_mongo->selectDB("data");
$articles = $_mongo->selectDB("data")->selectCollection("articles");
$articlelist = $articles->find();
$articlelist->sort(array('category' => 1));
if($articlelist->count() > 0){
foreach($articlelist as $article){
}
}
$this->view->setVar('articlelist', $articlelist);
部分导航栏
<nav class="col-xs-12 col-sm-3 sidebar-offcanvas" id="sidebar">
<div id="accordion" class="panel-group">
<div class="panel panel-default">
{% for article in articlelist %}
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse{{article['_id']}}">{{article['category']}}</a>
</h4>
</div>
<div id="collapse{{article['_id']}}" class="panel-collapse collapse">
<ul class="list-group">
<li class="list-group-item"><a href="{{article['uri']}}">{{article['title']}}</a></li>
</ul>
</div>
{% endfor %}
</div>
</div>
</nav>
源数据:
$post = array(
'date_created' => new MongoDate(),
'title' => $_POST['title'],
'date' => date("d/m/y h:i:sa"),
'category' => $_POST['category'],
'uri' => $category . "/" . $string, //uri generated by category and title
'content' => $_POST['content']
);
$posts->save($post);
我的想法是我可以只做 $articles->find('category') 然后单独循环,但显然这不能在像 mongo 这样的 noSQL 中完成。我对此感到困惑,最简单的方法是什么?谢谢你。
最佳答案
逻辑的简单呈现:
$a = [
['category' => 'a', 'title' => 'Title 1'],
['category' => 'a', 'title' => 'Title 2'],
['category' => 'b', 'title' => 'Title 1'],
['category' => 'b', 'title' => 'Title 2'],
];
$currentCat = null;
foreach ($a as $article) {
if ($currentCat != $article['category']) {
print("\t" . $article['category'] . PHP_EOL);
$currentCat = $article['category'];
}
print("\t\t" . $article['title'] . PHP_EOL);
}
如果结构如此扁平,但排序正确,您必须记住您所在的最后一个类别并在其更改时绘制标题。
{% set currentCat = null %}
{% for article in articlelist %}
{% if article['category'] != currentCat %}
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse{{ article['_id'] }}">{{ article['category'] }}</a>
</h4>
</div>
{% set currentCat = article['category'] %}
{% endif %}
<div id="collapse{{article['_id']}}" class="panel-collapse collapse">
<ul class="list-group">
<li class="list-group-item"><a href="{{article['uri']}}">{{article['title']}}</a></li>
</ul>
</div>
{% endfor %}
它是先前 PHP 示例的逻辑副本,只是用您提供的 html 翻译成 Volt。应该工作正常,但未经测试。我在那里所做的和以前一样,记住最后一个类别,如果它已挂起,则为其绘制标题。
关于php - Phalcon 中生成的导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28954775/
我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%
我想从rubyrake脚本运行一个可执行文件,比如foo.exe我希望将foo.exe的STDOUT和STDERR输出直接写入我正在运行rake任务的控制台.当进程完成时,我想将退出代码捕获到一个变量中。我如何实现这一目标?我一直在玩backticks、process.spawn、system但我无法获得我想要的所有行为,只有部分更新:我在Windows上,在标准命令提示符下,而不是cygwin 最佳答案 system获取您想要的STDOUT行为。它还返回true作为零退出代码,这可能很有用。$?填充了有关最后一次system调
我想在ruby中生成一个64位整数。我知道在Java中你有很多渴望,但我不确定你会如何在Ruby中做到这一点。另外,64位数字中有多少个字符?这是我正在谈论的示例......123456789999。@num=Random.rand(9000)+Random.rand(9000)+Random.rand(9000)但我认为这是非常低效的,必须有一种更简单、更简洁的方法来做到这一点。谢谢! 最佳答案 rand可以将范围作为参数:pa=rand(2**32..2**64-1)#=>11093913376345012184putsa.
fruit=["apple","red","banana","yellow"]=>["apple","red","banana","yellow"]Hash[*fruit]=>{"apple"=>"red","banana"=>"yellow"}为什么splat会导致数组被如此整齐地解析为Hash?或者更准确地说,Hash如何“知道”“apple”是键,“red”是其对应的值?仅仅是因为它们在水果数组中的位置是连续的吗?这里使用splat有关系吗?否则哈希不能直接从数组中定义自己吗? 最佳答案 作为documentation状态:H
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我来自C、php和bash背景,很容易学习,因为它们都有相同的C结构,我可以将其与我已经知道的联系起来。然后2年前我学了Python并且学得很好,Python对我来说比Ruby更容易学。然后从去年开始,我一直在尝试学习Ruby,然后是Rails,我承认,直到现在我还是学不会,讽刺的是那些打着简单易学的烙印,但是对于我这样一个老练的程序员来说,我只是无法将它
我一直在到处搜索,包括StackOverflow文件,寻找如何执行此操作的答案,我尝试自己动手,但没有找到答案,所以我决定在这里发布我的请求。我需要在数组中获取任意(偶数)个项目,并返回与数组中另一个项目配对的项目。我需要代码的输出与我在下面包含的输出示例相同。输入:('A'..'H').to_a输出:[[['A','H'],['B','G'],['C','F'],['D','E']],[['A','G'],['B','F'],['C','E'],['D','H']],[['A','F'],['B','E'],['C','D'],['G','H']],[['A','E'],['B','
我想在rubyonrails中生成QR码,以便在我用rails编写的网站后台运行。看到这个http://code.google.com/p/qrcode-rails/但无法弄清楚如何让它为我工作。基本上在RoR中,我想:向生成器传递一个字符串、我的唯一代码、一个20个字符长度的数字(例如32032928889998887776)并生成一个名为“代码”_qr.jpg的图像并保存在资源文件夹中以附加到我的电子邮件中程序将发出。我该怎么做,有人知道吗?虽然我在问(不是很重要,我现在得到这个答案)但是我如何实现QR码读取,以从网络摄像头取回该代码?谢谢。 最佳答
在MacOS更新之前,它一直运行良好。我重新安装了RVM、rails、ruby等等。到目前为止没有任何效果。在我的Mac终端中,我可以生成一个é,但是在控制台中,我可以生成字符,使用alt+character,然后当我键入字符分配给的字母,它会删除该字符。在我的~/.rvmrc中:exportruby_configure_flags="--with-readline-dir=/usr/local/Cellar/readline/6.2.4"有什么想法吗?到目前为止,我已经明确地让它工作了,包括readline-rb。我猜我的全局要求不工作。gem'rb-readline','~>0.4
我正在尝试将全局导航菜单项添加到我的ActiveAdmin安装(在“仪表板”导航按钮旁边)。ActiveAdmin说这在他们的网站上是可能的,但他们没有任何关于如何实现它的文档。有谁知道如何做到这一点?编辑:抱歉,我应该更清楚。我想添加一个指向由任意文本/链接对组成的全局导航的链接。IE,如果我想添加一个链接到http://google.com在事件管理员的全局导航中使用文本“Google”,我将如何实现? 最佳答案 ActiveAdmin.register_page"Google"domenu:priority=>1,:label
我想知道其他人发现哪些是Rails应用程序的最佳图形库/插件/gem等。当我说最好的时候,我想我的意思是易于实现和自定义图表的能力。我以前使用过openflashchart2并喜欢它的整体外观/效果,尽管根据需要自定义所有内容有时会很痛苦。您是否有经验或建议可以为我指明更好的方向?非常感谢。 最佳答案 对于本地生成的简单图表,请查看Gruff.还值得一看的是各种GoogleChartsruby库,googlecharts成为一个。 关于ruby-on-rails-在RubyOnRai