kohana 简单使用
声明:基于公司使用的 Kohana 框架写的,不确定是否适用于原生 Kohana
附:Kohana 3 中文手册,传送门:http://www.lampblog.net/kohana3%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C/
1)请求和响应
1.1)获取请求参数
获取$_GET 或 $_POST 之类的全局变量:
$this->response->get() 、$this->response->post();
数组变量获取和空处理:
Arr::get($this->request->post(), 'user_name', '');Arr::get($this->request->get(), 'page', 1);
注:三个参数分别是:要处理的数组、变量key、为空时返回值
1.2)响应模版或json
显示模版:
$this->view('user_index');
1.2.1)输入变量到模版
$this->view('user_index')->set('user_info', $user_info)->set('order_status_nums', $order_status_nums);
1.2.2)公共头和脚
\modules\module\classes\template.php 类里 get_header_view 和 get_footer_view 分别处理公共头部和公共脚部
1.3)重定向跳转
$this->request->redirect($url);
2)session 和 cookie
2.1)使用 session
Session::instance()->set('user_id', $user_id); Session::instance()->get('user_id');
2.2)使用 cookie
Cookie::instance()->set('user_id', $user_id); Cookie::instance()->get('user_id');
3)数据库操作
3.1)增(DB::insert())
DB::insert(‘table_name’, array(‘column’))->values(array(‘column_value’))->execute(); 如果命令成功,你就能得到一个包含 insert_id 和 total_rows (总共影响到的行数)组成的数组
3.2)删(DB::delete())
$total_rows = DB::delete(‘table_name’)->where(‘column’,’=’,’value’)->execute(); 如果命令成功,你就能得到结果中影响到的行数
3.3)改(DB::update())
$total_rows = DB::update(‘table_name’)->set(array(‘column’=>’value’))->where(‘column’,’=’,’value’)->execute(); 如果命令成功,你就能得到结果中影响到的行数
3.4)查(DB::select())
$result = DB::select()->from(‘table_name’)->where(‘column’,’=’,’value’)->execute()->as_array();
3.4.1)查询一行
$result = DB::select('column')->from('table_name')->execute()->current();
3.4.2)字段别名
$result = DB::select(array('longcolumnname1', 'col1'), array('longcolumnname2', 'aliascol2'))->from('table_name')->execute()->as_array();
3.5)使用原生 sql
$arr = DB::query ( Database::SELECT, $sql )->execute()->as_array();
query 方法的第一个参数是操作类型,可选值为:Database::SELECT、Database::INSERT、NULL
类型为select时返回结果集,类型为insert时返回insert_id,类型为null 或 其他值 时返回影响的行数
3.6)打印上一条查询的 sql
ORM 或 Model 可使用 last_query() 方法获取上一条查询语句
Database::instance()->last_query
3.7)sql 预处理
DB->select('col1','col2')->form('table_name')->where('user_id', '=', ':id')->param(':id', 1)->execute()->as_array();
3.8)排序与分页
$results = DB::select()->from('users')->order_by('id','desc')->limit($page_size)->offset($offset)->execute();
4)service 和 dao
service 和 dao 不是必用项,可以按息要求和习惯写或不写都可以,它们本质就是封闭了一些 DB 操作方法(函数)
公共service 和 dao 分别位于 /modules/module/classes/service/ 和 /modules/module/classes/dao/ 下,你也可以在本应用的 classes 下新建 service 和 dao 来覆盖公共的类(优先级比公共的高)
完
转载于:https://www.cnblogs.com/tujia/p/6652324.html
kohana 简单使用相关推荐
- kohana task 编写计划任务
kohana 框架 我们经常使用gleez作为我们二次开发. 收先我们要把文件建在Task文件夹下,比如新建文件为:testcron <?phpdefined('SYSPATH') or di ...
- kohana::message 和config
由于是英文手册,所有第一次把message和配置文件搞混淆了. 与配置文件不同: 1,提取方式不一样: config: $config=Kohana::$config->load('test') ...
- kohana框架的入门学习 2.0版本的
Kohana:敏捷的 PHP 框架 原文:Kohana: The Swift PHP Framework 作者:Cristian Gilè 中文翻译:淡水 Kohana 是 PHP5 的开发框架,基于 ...
- kohana php,[php框架]kohana中文译本.pdf
[php框架]kohana中文译本 欢迎访问非官方 Kohana 3.0 维基百科 表示外部链接 英文原版地址: http://www.kerkness.ca/wiki/doku.php Welcom ...
- php二级分销kohana源码,php框架kohana(二)
以下记录的是kohana的controller和view 一.在kohana/application/view新建index.php,代码如下 html PUBLIC "-//W3C//DT ...
- kohana php版本,kohana框架的入门学习 2.0版本的
Kohana:敏捷的 PHP 框架 原文:Kohana: The Swift PHP Framework 作者:Cristian Gilè 中文翻译:淡水 Kohana 是 PHP5 的开发框架,基于 ...
- 在docker上安装部署tomcat项目 超简单,拿来主义
在docker中部署tomcat,非常简单,而且省去了手动安装jdk等步骤,只需要将war包复制在容器tomcat实例中的webapps下面即可.以下将详细讲解流程: 在windows中打好包以后用w ...
- Linux下tomcat的安装与卸载以及配置(超简单)
无敌简单的几步 1.安装 //首先你需要下载好tomcat包 sudo tar -xvzf apache-tomcat-7.0.85.tar.gz(这里是包名) -C 你要放的位置 2.卸载 rm - ...
- Docker安装Apache与运行简单的web服务——httpd helloworld
Docker运行简单的web服务--httpd helloworld目录[阅读时间:约5分钟] 一.Docker简介 二.Docker的安装与配置[CentOS环境] 三.Docker运行简单的web ...
最新文章
- 失手打死请自己吃饭的酒友 嫌疑人在深圳落网
- Java程序员从笨鸟到菜鸟之(十一)多线程讲解
- pycharm 运行.py文件如何像控制台那样传参?
- 基于visual Studio2013解决算法导论之012计数排序
- Java基础知识复习(一)
- UNIX环境高级编程笔记
- spring核心包功能解析
- 使用ADO的通用DAL
- linux 路由协议,路由协议之RIP协议
- 计算机会考操作题vb,2016年9月计算机二级考试《VB》上机操作题题库(2)
- 【Linux】awk处理变量
- android studio 找不到button对象_为什么那么多漂亮(真漂亮)并且条件优秀的女生找不到对象?...
- 【转载】「微信小程序」有哪些冲击与机会?
- 【毕设教学】 经典单片机控制算法:PID - 嵌入式 物联网
- mysql数据库的超级管理员名称_MySQL数据库的超级管理员用户的名称是__________。...
- 四川省巴中市谷歌高清卫星地图下载
- iphone 通知声音_如何在iPhone上掌握通知
- namenode无法启动,There appears to be a gap in the edit log. We expected txid 10323, but got txid 10324.
- linux一键分区脚本,【Shell】Linux中分区脚本
- tomcat端口占用极其简单解决办法
热门文章
- n型半导体和p型半导体的区别_PNP和NPN的区别和判别方法,网友:太厉害了!终于有人能讲明白了...
- 基于php的成绩管理设计(含源文件)
- 华为服务器系统关机命令,服务器远程命令关机
- canvas笔记-二次贝塞尔曲线与三次贝塞尔曲线的用法
- Python笔记-获取拉钩网南京关于python岗位数据
- Qt工作笔记-使用setFilterKeyColumn实现model的单行过滤
- QML与C++混合编程详解
- MySQL入门之PHP的MySQL数据库编程
- oracle数据库定时同步工具,[每天自动同步一个数据库表的数据]sql server定时同步oracle数据表...
- 北师大c语言2019在线作业,华东石油《C语言》2019年春季学期在线作业(二)辅导答案...