我可能正在搜索错误的关键字,因为我发现几乎不可能在文档或任何论坛中找不到它.
来自ORM find_all()查询结果如
$ result = ORM :: factory('some_table') - > where('id','IN',$ ids) - > find_all()
我如何计算返回的结果?
我试过了
$results->count()
count($results)
Run Code Online (Sandbox Code Playgroud)
但是无法获得正确的结果,在后一种情况下总是为1,因为返回了一个对象.
或者,如果计数不可能,那么至少可以告诉我是否找到了任何结果?
我有2张桌子
用户和评论
评论与用户有多对一的关系
试着想出一种使用ORM根据评论量获得最高用户的方法
有什么建议?
我在实践中并没有多多使用抽象类,尽管我理解它们是什么:一种指定子类的方法必须实现哪些方法.
我只是通过Doxygen放置了一个Kohana项目,可以完整地看到类层次结构.我看到,在链条的顶端,我们有一个工厂:
abstract class Kohana_Model {
public static function factory($name){
// Add the model prefix
$class = 'Model_'.$name;
return new $class;
}
}
Run Code Online (Sandbox Code Playgroud)
直接在它下面继承,我们有一个空的抽象类:
abstract class Model extends Kohana_Model {}
Run Code Online (Sandbox Code Playgroud)
......其下方,有三个继承类:Kohana_Model_Database,Kohana_ORM,和Model_Foobar.
有人请为此解释编程推理 - 在链中有一个空的抽象类的目的是什么?(而且,根本?)
为什么Kohana_Model_Database,Kohana_ORM和Model_Foobar直接从Kohana_Model继承,当(显然?)Model和Kohana_Model之间没有其他分支或继承时?
我正在尝试在Kohana 3(Orm Model)中添加验证消息.
类/模型/ cliente.php
<?php defined('SYSPATH') or die('No direct script access.');
class Model_Cliente extends ORM {
protected $_table_name = 'clientes';
protected $_primary_key = 'id';
protected $_has_one = array('loja' => array());
protected $_rules = array(
'responsavel' => array('not_empty' => array(), 'min_length' => array(3)),
'email' => array('not_empty' => array(), 'email' => array()),
'telefone' => array('regex' => array('/^(\(\d{2}\)|\d{2})[ -]?\d{4}[ -]?\d{4}$/'))
);
}
?>
Run Code Online (Sandbox Code Playgroud)
消息/ cliente.php
<?php defined('SYSPATH') or die('No direct script access.');
return array(
'responsavel' => array(
'not_empty' => 'O nome do …Run Code Online (Sandbox Code Playgroud) 所以我有一张桌子,内容如下:
我想从使用Kohana ORM的交易时间戳获得不同的日期我有一个名为的模型 Model_Transactions
如果我这样做
Model_Transactions::factory('transactions')->find_all();
Run Code Online (Sandbox Code Playgroud)
我得到所有数据.我将如何只获得不同的日期,因为我将它用作存档.我不希望用户单击存档并返回一个空白表.
例如:用户点击"2012年4月1日",因为4月01日没有交易,有一张空白表,我想避开那些场景,怎么样?
有没有办法一次添加多个记录.通常我们称之为批量插入.目前我在做以下事情:
foreach ($datalist as $data)
try {
$this->template_id = $data['template_id'];
$this->notifier_id = $data['notifier_id'];
$this->user_id = $data['user_id'];
$this->date_created= date('Y-m-d h:i:s');
$this->save();
return true;
} catch (Kohana_Exception $e) {
return false;
}
}
Run Code Online (Sandbox Code Playgroud) 我想使用ORM查询构建器实现此查询:
SELECT * FROM `products`
GROUP BY CASE `products`.`configurable`
WHEN 'yes' THEN `products`.`id_configuration`
ELSE `products`.`id`
END
Run Code Online (Sandbox Code Playgroud)
我知道这有效:
$products = DB::query(Database::SELECT, '
SELECT * FROM `products`
GROUP BY CASE `products`.`configurable`
WHEN 'yes' THEN `products`.`id_configuration`
ELSE `products`.`id`
END
')->execute();
Run Code Online (Sandbox Code Playgroud)
但它返回一个mysql数据库结果,我宁愿有一个ORM列表,否则我将不得不在循环中实例化我的所有ORM对象,导致性能不佳......或者......?
可能吗?ORM'group_by'功能看起来非常有限......
kohana-orm ×7
kohana ×5
kohana-3 ×4
php ×4
kohana-3.2 ×1
kohana-db ×1
message ×1
oop ×1
validation ×1