我是codeigniter的新手,但是我在做很多Rails开发时理解OOP和MVC.我还没想到的一件事是如何在codeigniter中编写类级方法并在控制器中访问它.例如,我有
<?php
class User_model extends Model {
function user_model()
{
parent::Model();
}
public static function get_total_users_count(){
$results = $this->db->query("SELECT * FROM bhr_users GROUP BY userid");
if($results){
return $results->num_rows();
}
return 0;
}
}
?>
Run Code Online (Sandbox Code Playgroud)
我认为我在这里所做的是为我的模型建立了一个类级别的方法,我应该能够User_model::get_total_users_count()在我的控制器中调用Now,之前的程序员称为"欢迎"我有类似的东西:
<?php
class Welcome extends Controller {
function Welcome()
{
parent::Controller();
$this->load->model('bhr_model');
$this->load->model('user_model');
}
function index()
{
$invite = $this->uri->segment(3);
if($invite == 'invitefriends') {
$pagedata['invitefriends'] = $invite;
} else {
$pagedata['invitefriends'] = '';
}
$pagedata['numberofpeople'] = User_model::get_total_users_count();
$this->load->view('default_page', $pagedata);
}
}
Run Code Online (Sandbox Code Playgroud)
上面的方法调用get_total_users_count不起作用,因为它说因为我在类级别函数中使用db方法 …
我是rails的新手,所以可以在这里使用一些帮助.我已经按照几个教程创建了一个带有评论的博客,甚至还有一些AJAX的铃声和口哨声,而且我坚持一些我希望很容易的东西.博客和评论的默认显示是列出最早的第一个.如何反转以显示最新条目和最新评论.不知道这是否是控制器或型号的功能.我做了一些自定义,所以这里是控制器.rb文件的代码,如果它有帮助.
评论控制器
class CommentsController < ApplicationController
def create
@post = Post.find(params[:post_id])
@comment = @post.comments.create!(params[:comment])
respond_to do |format|
format.html { redirect_to @post}
format.js
end
end
end
Run Code Online (Sandbox Code Playgroud)
POSTS控制器
class PostsController < ApplicationController
before_filter :authenticate, :except => [:index, :show]
# GET /posts
# GET /posts.xml
def index
@posts = Post.all(:include => :comments)
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @posts }
format.json { render :json => @posts }
format.atom
end
end
# GET /posts/1
# GET /posts/1.xml
def show …Run Code Online (Sandbox Code Playgroud) 我正在使用stackoverflow上的这个解决方案将我的MYSQL输出编码为JSON编码数组.
$sth = mysql_query("SELECT ...");
$rows = array();
while($r = mysql_fetch_assoc($sth)) {
$rows[] = $r;
}
print json_encode($rows);
Run Code Online (Sandbox Code Playgroud)
这很好用,产生的输出
[{"id":"81","title":"Something Here","start":"2009-10-27 09:00:00"},{"id":"77","title":"Report on water","start":"2009-10-30 09:00:00"}]
Run Code Online (Sandbox Code Playgroud)
现在我需要说出一个值
"colour":"Blue"
Run Code Online (Sandbox Code Playgroud)
在JSON编码的数组中.
所以我需要输出看起来像
[{"id":"81","title":"Community Awareness","start":"2009-10-27 09:00:00", "colour":"Blue"},{"id":"77","title":"Write a 10,000 Page Report on Emma","start":"2009-10-30 09:00:00", "colour":"Blue"}]
Run Code Online (Sandbox Code Playgroud)
有没有人对我如何实现这一目标有任何解决方案?
谢谢,
蒂姆莫尔
如何在Cygwin中编译我的C++程序.我安装了gcc.我应该使用什么命令?此外,如何在.cpp扩展名中运行我的控制台应用程序.我试图用一些小程序学习C++,但在Visual C++中,我不想为每个小.cpp文件创建一个单独的项目.
我有一个数据集,这是一个大的未加权循环图.循环发生在约5-6路径的循环中.它由大约8000个节点组成,每个节点具有1-6个(通常约4-5个)连接.我正在进行单对最短路径计算,并已实现以下代码进行广度优先搜索.
from Queue import Queue
q = Queue()
parent = {}
fromNode = 'E1123'
toNode = 'A3455'
# path finding
q.put(fromNode)
parent[fromNode] = 'Root'
while not q.empty():
# get the next node and add its neighbours to queue
current = q.get()
for i in getNeighbours(current):
# note parent and only continue if not already visited
if i[0] not in parent:
parent[i[0]] = current
q.put(i[0])
# check if destination
if current == toNode:
print 'arrived at', toNode
break
Run Code Online (Sandbox Code Playgroud)
上面的代码使用Python 2.6 Queue模块,getNeighbours()只是一个子程序,它只进行一次MySQL调用并将邻居作为元组列表返回,例如(('foo',),('bar',)).SQL调用很快. …
在10.6中,Apple添加+[NSPropertyListSerialization dataWithPropertyList:format:options:error:]并标记为旧版本+[NSPropertyListSerialization dataFromPropertyList:format:errorDescription:]已过时,很快就会被弃用.在10.6及更高版本上使用较新的调用,并且仍然在早期的OS版本上运行的一种方法是这样的:
if ([NSPropertyListSerialization respondsToSelector:@selector(dataWithPropertyList:format:options:error:)]) {
data = [NSPropertyListSerialization dataWithPropertyList:dict
format:NSPropertyListXMLFormat_v1_0
options:0
error:&err];
} else {
data = [NSPropertyListSerialization dataFromPropertyList:dict
format:NSPropertyListXMLFormat_v1_0
errorDescription:&errorDescription];
}
Run Code Online (Sandbox Code Playgroud)
针对10.4 SDK构建(为了与该版本兼容),这会导致:warning: 'NSPropertyListSerialization' may not respond to '+dataWithPropertyList:format:options:error:'更糟糕的是,由于编译器不知道这个选择器,它可能会错误地传递参数.
NSInvocation是调用新API的已批准/最佳方式,就SDK而言,它还不存在吗?
我正在尝试使用kernlabR包来做支持向量机(SVM).对于我非常简单的例子,我有两条训练数据.A和B.
(A和B属于类型matrix- 它们是图形的邻接矩阵.)
所以我写了一个函数,它接受A + B并生成一个核矩阵.
> km
[,1] [,2]
[1,] 14.33333 18.47368
[2,] 18.47368 38.96053
Run Code Online (Sandbox Code Playgroud)
现在我使用kernlab的ksvm函数来生成我的预测模型.现在,我只想努力工作 - 我不担心训练错误等.
所以,问题1:我是否正确生成了我的模型?合理?
# y are my classes. In this case, A is in class "1" and B is in class "-1"
> y
[1] 1 -1
> model2 = ksvm(km, y, type="C-svc", kernel = "matrix");
> model2
Support Vector Machine object of class "ksvm"
SV type: C-svc (classification)
parameter : cost C …Run Code Online (Sandbox Code Playgroud) 让我们说我们想要一个基于javascript的功能库(我在想jquery):例如:
每个代码有四个代码:一些Python,CSS,JS和HTML.
安排所有这些部分的最佳方法是:
X - - - - - - -
如果,或者有某种方法可以确保从模板标签调用模板时遵循{%block%}指令,那将是很好的.因此,可以在单个文件中创建单个模板,每个模板具有用于CSS,HTML和JS的块.通过从任何视图所需的模板调用的模板标签来调用它.这是有道理的.这可以通过某种方式完成吗?我的模板标签模板似乎忽略了{%block%}指令.
X - - - - - - -
关于将这些媒体放在表格中有一些非常相关的说法http://docs.djangoproject.com/en/dev/topics/forms/media/这可能适用于表单验证器和日期选择器示例.
显而易见的尝试是:
Regex.Replace(input, @".$", "X", RegexOptions.Singleline);
Run Code Online (Sandbox Code Playgroud)
但这并不总是有效.考虑一下这个字符串\r\n\r\n- 上面会产生令人惊讶的结果\r\nXX.人们可能期望从阅读MSDN(下多行),其$应该只是在整个字符串的结尾匹配,但显然$实际上是指"比赛在字符串的结尾或者在\n刚刚字符串结束前".
什么可能是匹配任意字符串的最后一个字符的正确方法?
我有一个哈希
foo = {'bar'=>'baz'}
Run Code Online (Sandbox Code Playgroud)
我想打个电话 foo.bar #=> 'baz'
我的动机是将activerecord查询重写为原始sql查询(使用Model#find_by_sql).这将返回一个带有SELECT子句值作为键的哈希.但是,我现有的代码依赖于object.method点表示法.我想做最小的代码重写.谢谢.
编辑:看来Lua有这个功能:
point = { x = 10, y = 20 } -- Create new table
print(point["x"]) -- Prints 10
print(point.x) -- Has exactly the same meaning as line above
Run Code Online (Sandbox Code Playgroud)