我有一个模型,返回带有ID,名称,价格等的汽车数据.所以我有一个汽车控制器和一个从模型中获取此数据的csv动作:
$carTable = $this->getServiceLocator()->get('Application\Model\DbTable\Cars');
$cars = $carTable->fetchAll();
Run Code Online (Sandbox Code Playgroud)
我需要将此"$ cars"数据下载为CSV文件,以便用户将其存储在磁盘上.
我试图禁用布局并回显CSV字符串并设置"内容类型"和其他标题,但它没有开箱即用.然后我发现我应该创建一个自定义的CsvRenderer并在配置中注册它.
由于我在ZF2网站或博客和Stackoverflow答案中找不到任何关于此的文档,我想知道这是否是在ZF2中将数据下载为CSV的推荐通用方法?还是有一个我不知道的更简单的解决方案?
谢谢
有没有办法使用给定的uri获取控制器名称和操作名称?
例:
uri: http://test/client/edit/48
Run Code Online (Sandbox Code Playgroud)
控制器名称=>客户端操作名称=>编辑
在这种情况下,Apache Http Server 将充当反向代理并位于主应用程序服务器的前面。在应用程序服务器中,需要记录客户端 IP 地址。
我的要求是捕获客户端IP地址,然后将此IP地址添加为自定义请求头(例如TRUEIP=123.123.123.123)并将其转发到应用程序服务器。请注意,我已阅读有关将原始客户端 IP 记录到 apache 日志的文章。但是我要求访问 IP 地址并将其添加到标头中。此外,我确实尝试使用“%{h}i”或“%{h}e”访问环境变量,但在这种情况下,标题值显示为“i=18”(不带引号)。实际上,对于 User-Agent,Referer 的标题值也打印了相同的“i=18”。
请帮我解决一个问题。
我在 Windows 7 上使用 Apache 2.4.28(来自 apache 休息室)。 Oracle OC4J 中使用的应用程序服务器(但我只需要在 Apache 端进行配置,因为应用程序在不同的环境中可能会有所不同)。
我是Clojure的新手,我有一个关于嵌套doseq循环的问题.
我想迭代一个序列并得到一个子序列,然后得到一些键来在所有序列元素上应用一个函数.
给定的序列具有或多或少的结构,但有数百本书籍,书架和许多库:
([:state/libraries {6 #:library {:name "MUNICIPAL LIBRARY OF X" :id 6
:shelves {3 #:shelf {:name "GREEN SHELF" :id 3 :books
{45 #:book {:id 45 :name "NECRONOMICON" :pages {...},
{89 #:book {:id 89 :name "HOLY BIBLE" :pages {...}}}}}}}}])
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
(defn my-function [] (let [conn (d/connect (-> my-system :config :datomic-uri))]
(doseq [library-seq (read-string (slurp "given-sequence.edn"))]
(doseq [shelves-seq (val library-seq)]
(library/create-shelf conn {:id (:shelf/id (val shelves-seq))
:name (:shelf/name (val shelves-seq))})
(doseq [books-seq (:shelf/books (val shelves-seq))]
(library/create-book conn (:shelf/id (val shelves-seq)) {:id …Run Code Online (Sandbox Code Playgroud) 嘿,我有这个代码,但我只想反转 :a 键。
(sort-by (juxt :a :b) [{:a 1 :b 3} {:a 1 :b 2} {:a 2 :b 1}])
;;=> [{:a 1 :b 2} {:a 1 :b 3} {:a 2 :b 1}]
Run Code Online (Sandbox Code Playgroud)
我试过这个,但这是错误的顺序。
(sort-by (juxt :a :b) #(compare %2 %1) [{:a 1 :b 3} {:a 1 :b 2} {:a 2 :b 1}])
;;=> ({:a 2, :b 1} {:a 1, :b 3} {:a 1, :b 2})
Run Code Online (Sandbox Code Playgroud)
我想得到。
;;=> ({:a 2, :b 1} {:a 1, :b 2} {:a 1, :b 3})
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?我也可以这样做吗?
我知道在clojure.string那里有一个split函数,它返回字符串部分的序列,不包括给定的模式。
(require '[clojure.string :as str-utils])
(str-utils/split "Yes, hello, this is dog yes hello it is me" #"hello")
;; -> ["Yes, " ", this is dog yes " " it is me"]
Run Code Online (Sandbox Code Playgroud)
但是,我试图找到一个函数,而不是将标记作为返回向量中的元素。所以它会像
(split-around "Yes, hello, this is dog yes hello it is me" #"hello")
;; -> ["Yes, " "hello" ", this is dog yes " "hello" " it is me"]
Run Code Online (Sandbox Code Playgroud)
在任何包含的库中是否有执行此操作的函数?任何在外部图书馆?我一直在尝试自己写,但一直无法弄清楚。
在 Clojure 中向一定数量的玩家发牌的最惯用和最有效的方式是什么?Clojure 的分区实际上并没有模拟真实世界的物理纸牌交易。
注意:我希望能够与任意数量的玩家交易。如果纸牌被完全不平等地处理也没关系。我想非常通用地处理低于 52 的卡......或混合的多副牌。
可用卡和空函数签名的示例数据结构:
(def sample-cards
[[:5 :Heart]
[:8 :Spade]
[:7 :Club]
[:9 :Diamond]
[:J :Spade]
[:Q :Heart]
[:5 :Spade]
[:8 :Club]
[:6 :Diamond]])
(defn deal-cards [players deck]
; some logic/looping
; then return give the args 4 and sample-cards
[[[:5 :Heart] [:J :Spade] [:6 :Diamond]]
[[:8 :Spade] [:Q :Heart]]
[[:7 :Club] [:5 :Spade]]
[[:9 :Diamond] [:8 :Club]]])
Run Code Online (Sandbox Code Playgroud) 我预计有 100 个密钥对,但实际只有 6 个。为什么?
(defn random-map-generator [size]
(def theatom (atom {}))
(dotimes [x size]
(swap! theatom assoc
(keyword (nth ["a" "b" "c" "d" "e" "f"] (rand-int 6)))
(rand-int 30)))
@theatom)
(random-map-generator 100)
=> {:f 4, :a 29, :e 15, :c 23, :b 19, :d 28}
Run Code Online (Sandbox Code Playgroud) 我需要将此Javascript代码转换为ClojureScript。我在使用this关键字时遇到了麻烦。
这是我的JS:
if (!String.prototype.startsWith) {
String.prototype.startsWith = function(searchString, position) {
position = position || 0;
return this.indexOf(searchString, position) === position;
};
}
Run Code Online (Sandbox Code Playgroud)
我Object doesn't support property or method 'startsWith'在高级模式下遇到了Google Closure编译器错误,因此需要添加此代码。(IE 11)
我是 Clojure 的新手,会帮助处理一些代码。我有一个接受向量的函数,我想遍历向量并获取索引“i”处的值和“i”本身的值。'i' 是在循环中递增的值。
我在Clojure的文档检查“为”在对和写了下面的代码。
(for [i some-vector]
(print (get-intersec i (.length some-vector) loop-count)))
Run Code Online (Sandbox Code Playgroud)
循环计数变量应该是循环计数。
我也检查了循环,但它似乎不是一个可行的解决方案。有人可以帮助我使用我可以使用的 clojure 函数,或者帮助我编写可以执行此操作的宏或函数。
谢谢你。
Ps:为了解决我的问题,我使用自己的计数器,但想要更好的解决方案。