本节对应书里第二章 Model
原文翻译整理如下:

Model 模型(数据结构层)

如前所述,模型是数据库表的抽象层,你可能在99%的情况下都是以此目的来使用它的。在这个例子中,我们将扩展具已经有内置方法的Phalcon\Mvc\Model 组件,例如find方法。默认情况下,此方法将返回在名为article的表中找到的所有记录。
假设我们有以下MySQL表结构:

CREATE TABLE IF NOT EXISTS `article` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`article_short_title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`article_long_title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`article_slug` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`article_description` text COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1;

针对此表,我们的model(模型)类似如下代码:

<?php
namespace \App\Core\Models\Article;
class Article extends \Phalcon\Mvc\Model
{
protected $id;
protected $article_short_title;
protected $article_long_title;
protected $article_slug;
protected $article_description;
public function getId()
{
return $this->id;
}
public function getArticleShortTitle()
{
return $this->article_short_title;
}
public function getArticleLongTitle()
{
return $this->article_long_title;
}
public function getArticleSlug()
{
return $this->article_slug;
}
public function getArticleDescription()
{
return $this->article_description;
}
public function setId($id)
{
$this->id = $id;
}
public function setArticleShortTitle($article_short_title)
{
$this->article_short_title = $article_short_title;
}
public function setArticleLongTitle($article_long_title)
{
$this->article_long_title = $article_long_title;
}
public function setArticleSlug($article_slug)
{
$this->article_slug = $article_slug;
}
public function setArticleDescription($article_description)
{
$this->article_description = $article_description;
}
}

如果我们需要复写默认的find方法,我们可以在model这样创建,例子如下:

public static function find($parameters = null)
{
return parent::find($parameters);
}

Related Posts: 零基础学Phalcon 15 Model :