模型
在 Lime 中模型的作用是暂存数据以及与其相关的业务逻辑,这些数据将被视图所显示。模型是 \Lime\Model 或其子类的实例。
模型类的例子:
class User extends \Lime\Model
{
public function __construct()
{
//...
}
}
添加数据
使用 add() 方法将数据添加到模型中:
class Friut extends \Lime\Model
{
public function __construct($friuts = [])
{
foreach ($friuts as $friut) {
$this->add($friut);
}
}
}
$friuts = [
['name' => 'apple', 'qty' => 10],
['name' => 'banana', 'qty' => 20],
['name' => 'lemon', 'qty' => 15],
];
$friut = new Friut($friuts);
遍历数据
重置位置
$friut->rewind();
遍历数据
$friut->each();
例子:
while($friut->each()) {
echo sprintf("%s (%d)", $friut->row('name'), $friut->row('qty')), PHP_EOL;
}
序号值
while($friut->each()) {
echo $friut->seq(), PHP_EOL;
}
将实例赋值给变量
(new Friut($friuts))->to($friut);
获取所有数据
$friut->all();
当前数据
$friut->row();
方法
row是和方法each一起使用的
获取当前数据中的某一值
例如当前数据是:
[
['name'] => 'apple',
['qty'] => '10',
]
$friut->row('name');
以 @ 开头表示一个希望使用方法(get前缀的方法)访问数据
class Friut extends \Lime\Model
{
public function __construct($friuts = [])
{
foreach ($friuts as $friut) {
$this->add($friut);
}
}
public function getName($name)
{
return '我是 ' . $name;
}
}
// ... 省略的代码
$friut->row('@name'); // 我是 apple
添加回调函数
$friut->row('name', function($name) {
return ucfirst($name);
});