声明:基于公司使用的 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 简单使用相关推荐

  1. kohana task 编写计划任务

    kohana 框架  我们经常使用gleez作为我们二次开发. 收先我们要把文件建在Task文件夹下,比如新建文件为:testcron <?phpdefined('SYSPATH') or di ...

  2. kohana::message 和config

    由于是英文手册,所有第一次把message和配置文件搞混淆了. 与配置文件不同: 1,提取方式不一样: config: $config=Kohana::$config->load('test') ...

  3. kohana框架的入门学习 2.0版本的

    Kohana:敏捷的 PHP 框架 原文:Kohana: The Swift PHP Framework 作者:Cristian Gilè 中文翻译:淡水 Kohana 是 PHP5 的开发框架,基于 ...

  4. kohana php,[php框架]kohana中文译本.pdf

    [php框架]kohana中文译本 欢迎访问非官方 Kohana 3.0 维基百科 表示外部链接 英文原版地址: http://www.kerkness.ca/wiki/doku.php Welcom ...

  5. php二级分销kohana源码,php框架kohana(二)

    以下记录的是kohana的controller和view 一.在kohana/application/view新建index.php,代码如下 html PUBLIC "-//W3C//DT ...

  6. kohana php版本,kohana框架的入门学习 2.0版本的

    Kohana:敏捷的 PHP 框架 原文:Kohana: The Swift PHP Framework 作者:Cristian Gilè 中文翻译:淡水 Kohana 是 PHP5 的开发框架,基于 ...

  7. 在docker上安装部署tomcat项目 超简单,拿来主义

    在docker中部署tomcat,非常简单,而且省去了手动安装jdk等步骤,只需要将war包复制在容器tomcat实例中的webapps下面即可.以下将详细讲解流程: 在windows中打好包以后用w ...

  8. Linux下tomcat的安装与卸载以及配置(超简单)

    无敌简单的几步 1.安装 //首先你需要下载好tomcat包 sudo tar -xvzf apache-tomcat-7.0.85.tar.gz(这里是包名) -C 你要放的位置 2.卸载 rm - ...

  9. Docker安装Apache与运行简单的web服务——httpd helloworld

    Docker运行简单的web服务--httpd helloworld目录[阅读时间:约5分钟] 一.Docker简介 二.Docker的安装与配置[CentOS环境] 三.Docker运行简单的web ...

最新文章

  1. 失手打死请自己吃饭的酒友 嫌疑人在深圳落网
  2. Java程序员从笨鸟到菜鸟之(十一)多线程讲解
  3. pycharm 运行.py文件如何像控制台那样传参?
  4. 基于visual Studio2013解决算法导论之012计数排序
  5. Java基础知识复习(一)
  6. UNIX环境高级编程笔记
  7. spring核心包功能解析
  8. 使用ADO的通用DAL
  9. linux 路由协议,路由协议之RIP协议
  10. 计算机会考操作题vb,2016年9月计算机二级考试《VB》上机操作题题库(2)
  11. 【Linux】awk处理变量
  12. android studio 找不到button对象_为什么那么多漂亮(真漂亮)并且条件优秀的女生找不到对象?...
  13. 【转载】「微信小程序」有哪些冲击与机会?
  14. 【毕设教学】 经典单片机控制算法:PID - 嵌入式 物联网
  15. mysql数据库的超级管理员名称_MySQL数据库的超级管理员用户的名称是__________。...
  16. 四川省巴中市谷歌高清卫星地图下载
  17. iphone 通知声音_如何在iPhone上掌握通知
  18. namenode无法启动,There appears to be a gap in the edit log. We expected txid 10323, but got txid 10324.
  19. linux一键分区脚本,【Shell】Linux中分区脚本
  20. tomcat端口占用极其简单解决办法

热门文章

  1. n型半导体和p型半导体的区别_PNP和NPN的区别和判别方法,网友:太厉害了!终于有人能讲明白了...
  2. 基于php的成绩管理设计(含源文件)
  3. 华为服务器系统关机命令,服务器远程命令关机
  4. canvas笔记-二次贝塞尔曲线与三次贝塞尔曲线的用法
  5. Python笔记-获取拉钩网南京关于python岗位数据
  6. Qt工作笔记-使用setFilterKeyColumn实现model的单行过滤
  7. QML与C++混合编程详解
  8. MySQL入门之PHP的MySQL数据库编程
  9. oracle数据库定时同步工具,[每天自动同步一个数据库表的数据]sql server定时同步oracle数据表...
  10. 北师大c语言2019在线作业,华东石油《C语言》2019年春季学期在线作业(二)辅导答案...