kohana 框架简单小结_kohana框架-程序员宅基地

技术标签: Kohana  Php  php5  

kohana 框架是一个相对比较小众的php框架 ,是有一个开源组织开发的mvc框架。

(1)Controller 篇

1.接受参数

$this -> request -> param('key') 返回的是route路由里定义的参数

Arr :: get($_GET, 'key') 获取的是GET作用于里key对应的值

2. 重定向

$this -> request -> redirect()

3. 页面渲染一个模板

$this -> resposne -> body(string $content)

4. before() and after() 的作用

before 是action在被执行之前所执行的操作, 你不必改变Controller 的__construct() 方法

after 是action执行之后所执行的操作


(2)Model 篇:

1.如何使用model

自定义model类要继承Model基类,如果要使用数据库继承Model_database 即可

插入数据
$sql="INSERT INTO `kohana`.`user` (`name` ,`age` )VALUES ( 'test', '1'), ( 'test2', '2')";
$dat=$this->_db->query(Database::INSERT,$sql,false);

# return 返回的两个值中,第一个是自动增长的ID,如果有的话,第二是影响的行数

更新数据
$sql="UPDATE `ko_users` SET `user_name` = 'test111q1'  ";
$dat=$this->_db->query(Database::UPDATE,$sql,false);
#return 返回影响行数
删除数据
$sql="DELETE FROM `kohana`.`user` WHERE `user`.`id` = 1";
$dat=$this->_db->query(Database::DELETE,$sql,false);
#return 返回影响行数

查询数据

$sql="select * from ko_com_var";
$res=$this->_db->query(Database::SELECT,$sql,false);

#得到所有查询数据$res->as_array();

#得到一条查询结果$res->offsetGet(0);

#取得特定记录的指定字段值$res->get("name");

#移动指针并取得指定字段$res->next()->get("name");
$res->prev()->get("name");

#计算取得结果总数$res->count();
#还有其他方法不在一一罗列,请查看手册

第二种(查询器模式)

$query = DB::insert('user', array('user', 'age'))
        ->values(array('test1', '11'));
$query->execute();
#返回和上面一样

$query = DB::update('user')
        ->set(array('age' => '100'))
        ->where('user', '=', 'test1');
$query->execute();
#返回和上面一样

$query = DB::delete('user')
        ->where('age', 'IN', array('100', '11'));
$query->execute();
#返回和上面一样

$query = DB::select()->from('user')->where("id","=","1");
$res=$query->execute();
#和上面一样,$res是Database_Result_Cached对象$res->as_array();
#其他方法不演示了~
$query = DB::query(Database::INSERT, 'INSERT INTO users (username, password) VALUES (:user, :pass)')
->bind(':user', $username)
->bind(':pass', $password);
foreach ($new_users as $username => $password){
    $query->execute();
}


(3)View 篇

1.如何在action里使用一个模板

View :: factory(' temlate fiels path)

2. 如何往页面上传值

View :: factory(' temlate fiels path, data数组(传到页面上的数据))

3. 如何在模板里包含公用模板

在模板里面 <?php echo View :: factory('temlate files path') ?>                 //注意:这里的path是相对于“项目/src/views”为根目录的

4.如何往公共模板里传值

View :: set_golbal('key', $val) 或者bind_global('key', $val)

5.

route路由篇

config 篇

1如何自定义一个配置文件

普通的PHP文件,存储在config /目录中,返回一个关联数组

2.如何访问

$config = Kohana::$config->load('myconf');

$options = $config->get('options')

或者 $options = $config->get('myconf.options')

message篇

$forms = Kohana::message('message 文件名', 'key' )

message文件返回一个关联数组,key是代表键,多维数组的 key1.key2访问

log 日志篇

第一种方法Kohana_log_File

$writer = new Kohana_Log_File(APPPATH . 'logs/mylog');

$writer -> write(array(array('level' => Kohana_Log::INFO, 'body' => 'log body', 'time' => time())));

第二种方法

$writer = new Kohana_Log_File(APPPATH . 'logs/mylog');

Kohana_Log::instance() ->attach($writer) ->add(Kohana_Log::INFO, 'log body');




 
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/liaozhongping/article/details/51253714

智能推荐

关于tecplot动画的制作_tecplot动图-程序员宅基地

文章浏览阅读1.2w次。原文地址:关于tecplot动画的制作作者:Cherry参考文献一:http://hi.baidu.com/zhaoyj_111/blog/item/7939c318bb71e37cdab4bdbe.htmltecplot——画等高线和做动画的流程2008-10-10 11:22 Tecplot构筑结构网格有两种方式:point format和blockformat。_tecplot动图

在Ubuntu16.04中安装nvidia驱动_nvlink ubuntu-程序员宅基地

文章浏览阅读918次。对于双显卡(intel集显 + nvidia独显)的电脑,安装windows10和ubuntu 双系统时,往往会因为ubuntu中缺少 nvidia 驱动而出现各种启动问题。本文讲述的就是在ubuntu16.04上安装nvidia驱动,来解决前面提到的问题。第一步:从英伟达(nvidia)官网上下载相应的驱动文件,文件后缀名为.run。我的电脑是联想小新的,快捷键要在同时按下 键盘上的 Fn 键..._nvlink ubuntu

ubuntu使用docker_ubuntu进入docker-程序员宅基地

文章浏览阅读4.2k次,点赞2次,收藏4次。docker是一个用Go语言实现的开源项目,可以让我们方便的创建和使用容器,docker将程序以及程序所有的依赖都打包到docker container,这样你的程序可以在任何环境都会有一致的表现。_ubuntu进入docker

线程安全和可重入函数的区别与联系-程序员宅基地

文章浏览阅读75次。一、线程安全线程安全:如果一个函数在同一时刻可以被多个线程安全的调用,就称该函数是线程安全的。不需要共享时,请为每个线程提供一个专用的数据副本。如果共享非常重要,则提供显式同步,以确保程序以确定的方式操作。通过将过程包含在语句中来锁定和解除锁定互斥,可以使不安全过程变成线程安全过程,而且可以进行串行化。很多函数并不是线程安全的,因为他们返回的数据是存放在静态的内存缓冲区中的。..._可重入函数与线程安全的区别与联系

两款免费好用的OPCUA服务端模拟器_opcua模拟器-程序员宅基地

文章浏览阅读3k次。启动Softing OPC Client输入连接信息后可以看到已经连接到OPC服务器。打开文件目录下的.config,修改IP和端口号即可。Softing OPC Client显示已经连接。_opcua模拟器

【漏洞复现】宏景ehr-hcm-templates-文件读取-程序员宅基地

文章浏览阅读186次,点赞3次,收藏3次。宏景HCM系统是一款由宏景软件研发的系统,主要功能包括人员、组织机构、档案、合同、薪资、保险、绩效、考勤、招聘、培训、干部任免和人事流程等业务的管理,以及人事、绩效、培训、招聘、考勤等业务自助,还具备了报表功能和灵活的表格工具,支持集团管控、目标管理、领导决策等应用。宏景HCM系统templates接口存在文件读取漏洞。攻击者可以通过发送特定的POST请求,利用该漏洞获取系统敏感文件。

随便推点

【前端基础小案例】HTML+CSS实现酷狗音乐热榜效果_酷狗音乐html和css代码-程序员宅基地

文章浏览阅读3k次,点赞11次,收藏67次。超级简单的案例_酷狗音乐html和css代码

【水声通信】OFDM-QPSK水声通信仿真(含误码率检测)【含Matlab源码 3954期】_水声相控阵仿真-程序员宅基地

文章浏览阅读786次,点赞20次,收藏21次。OFDM-QPSK水声通信仿真(含误码率检测)完整的代码,方可运行;可提供运行操作视频!适合小白!_水声相控阵仿真

Android中Editext响应回车键事件_android edittext 回车事件-程序员宅基地

文章浏览阅读182次。Editext 按键响应回车事件事件。_android edittext 回车事件

iSCSI存储系统知识详解_iscsi目前发展状况-程序员宅基地

文章浏览阅读1.1w次,点赞4次,收藏25次。原文:https://community.emc.com/docs/DOC-33815SCSI 即 小型计算机系统接口 。小型计算机系统接口(英语:Small Computer System Interface; 简写:SCSI),一种用于计算机和智能设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。SCSI是一种智能的通用接口标准。它是各种计算机与外部_iscsi目前发展状况

C# 不能引用命名空间_hybridclr 引用不了c#的命名空间-程序员宅基地

文章浏览阅读701次。C# 不能引用命名空间_hybridclr 引用不了c#的命名空间

win修改时间格式-程序员宅基地

文章浏览阅读346次,点赞8次,收藏6次。根据大佬操作未能实现,在最后一步,还需要什么操作吗?

推荐文章

热门文章

相关标签