cakephp中的数据源其实是个好东西,假如你有多种形式的数据源,比如REST,RSS,
JSON等,你可以编写cakephp的插件,去读取这些数据源.本文以编写一个读取RSS格式数据源
的做例子,讲解其使用.
代码在http://www.loadsys.com/files/rss_source.zip中可以下载,
把解压的代码放在/app/models/datasources 下,并设置
app/config/database.php如下
var $codeforestNews = array(
'datasource' => 'rss',
'feedUrl' => 'http://feeds.feedburner.com/codeforest',
'encoding' => 'UTF-8',
'cacheTime' => '+1 day',
);
接着,创建
/app/models/codeforest_news.php
class CodeforestNews extends AppModel {
var $useTable = false;
var $useDbConfig = 'codeforestNews';
}
这里说明了,不使用数据库中的表,而直接使用datasource作为数据源
再看控制层:
class NewsController extends AppController {
var $name = 'News';
var $uses = array('CodeforestNews');
function index() {
$this->paginate = array(
'limit' => 10,
'order' => array(
'CodeforestNews.pubDate' => 'desc',
),
);
$this->set('news', $this->paginate('CodeforestNews') );
}
}
可以看到,甚至是可以排序的.
在页面中:
<?php foreach( $news as $newsItem ) : ?>
<?php echo $html->link($newsItem['CodeforestNews']['title'], $newsItem['CodeforestNews']['link']); ?><br/>
<em><?php echo $newsItem['CodeforestNews']['pubDate']; ?></em>
<hr>
<?php endforeach; ?>
<div class="paging">
<?php echo $paginator->prev('<< '.__('previous', true), array(), null, array('class'=>'disabled'));?>
| <?php echo $paginator->numbers();?>
<?php echo $paginator->next(__('next', true).' >>', array(), null, array('class'=>'disabled'));?>
</div>
DEMO效果为:
http://www.codeforest.net/demo/cake_data_sources/news/index/page:2
查看CAKEPHP手册,可以知道,要写datasources,实现如下方法之一即可:
create($model, $fields = array(), $values = array())
read($model, $queryData = array())
update($model, $fields = array(), $values = array())
delete($model, $id = null)
cakephp中的datasources
原创
©著作权归作者所有:来自51CTO博客作者mb5c80f4c73b73a的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
批判下cakephp中的SQL写法
PHP的框架是超多了,但有时,感觉有些框架是不是考虑的太过
cakephp sql hibernate books 框架 -
Cakephp REST
,
cakephp REST php xml 跨平台 -
CakePHP简介
CakePHP简介CakePHP是一个开源的仿rails的PHP框架。它
PHP 使用手册 应用程序 -
cakephp的分页排序
cakephp中的分页还是很简单的,下面例子复习下1 数
php html sed -
CakePHP + jqGrid整合的例子
html:[code="html"][/code]js:[code="js"]$(document).ready(function(){ jQ
json php javascript ViewUI ajax -
cakephp 1.3 Controller
数的形式。(译注:例如刚才提到过的VideoCon...
php ide 数组 数据 -
cakephp2.3.8中何为component
大胆假设,小心求证 记得这句话是以前读老师,正式厉害,我的物理成绩也是妥妥的,
cakephp php ide 复用 自动加载 -
ESP32C3 UART烧录固件
个人毛病,安装前看看空间有多大.更新环境当 IDF 更新时,有时需要新的工具链,或者将新的需求添加到 Windows MSYS2 环境中。要将旧版本的预编译环境中的数据移动到新版本:把旧的 MSYS2 环境(即 C:\msys32)移动/重命名为不同的目录(即 C:\msys32_old)。按照前文所述步骤下载新的预编译环境。将新的 MSYS2 环境解压缩到 C:\m
ESP32C3 UART烧录固件 cmd编译可以通过执行没有结果 myeclipse每次保存编译全部 vk_down 每次下翻丙行 c++ 应用程序