定义Controller
<?php
/**
* 测试订单控制器
* User: Administrator
* Date: 2016/1/13
* Time: 14:08
*/
namespace console\controllers;
use yii\console\Controller;
use yii\helpers\ArrayHelper; // 常用数组操作类
use console\models\Ordertest; // 订单测试Model
class OrderController extends Controller
{
/**
* 创建订单信息
*/
public function actionCreate()
{
$model = new Ordertest;
// 插入
$model->user_id = '';
$model->order_no = 'NO12345678966666';
$model->save();
// 更新
$model = Ordertest::findOne(1);
$model->user_id = '';
$model->order_no = 'NO12345678966666';
$model->save();
/**
* 更新( 修改所有order_no等于aaaaaa 修改成 bbbbbb)
*/
Ordertest::updateAll(['order_no'=>'aaaaaa'], ['order_no'=>'bbbbbb']);
/**
* 删除
*/
Ordertest::deleteAll();
# 删除id=312
Ordertest::deleteAll('id=:id', [':id' => 312]);
# 删除type=2 并且 user_id in (86,72)
Order::deleteAll(
['and', 'type = :type_id', ['not in', 'user_id', [86, 72]]],
[':type_id' => 2]
);
/**
* 查询 ( like )
*/
Ordertest::find()->andFilterWhere(['like','name','洋']);
/**
* 查询 ( 排序 )
*/
Ordertest::find()->OrderBy(['create_time'=>SORT_DESC]);
/**
* 主键查询
*/
Ordertest::findOne(10);
/**
* 多条件查询
*
* ->one() 查询1个结果
* ->count() 获取数量
*/
Ordertest::find()->where(['name'=>'小洋'])->andwhere(['age'=>24])->all();
/**
* LEFT JOIN 链表查询
*/
Ordertest::find()->join('LEFT JOIN', 'student', 'student.cid=customer.id')
->where('student.id=100')
->andwhere('is_ok=1')
->one();
/**
* 获取错误信息
*/
$errors = $model->getFirstErrors();
if ($errors) {
$result['status'] = false;
$result['message'] = current($errors);
}
}
}
定义Models
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2016/1/13
* Time: 14:59
* @file Order.php
* @brief 订单模型
*/
namespace console\models;
use Yii;
use yii\db\ActiveRecord;
use yii\db\Query;
class Ordertest extends ActiveRecord {
const STATUS_DELETED = -1;
const STATUS_INACTIVE = 0;
const STATUS_ACTIVE = 1;
/**
* @inheritdoc
*/
public static function tableName()
{
return '{{%onramp_order_test}}';
}
/**
* 配置数据验证格式
* @inheritdoc
*/
public function rules()
{
return [
[['user_id', 'order_no'], 'required'], // 必须有
[['user_id', 'order_no'], 'integer'] // 必须为正数
// ['name', 'trim'], // 去两端空格
// ['name', 'string', 'length' => [2, 8]], // 长度验证
// [['name', 'slug'], 'string', 'max' => 200] // name,slug必须为字符串,最大字符200
// [['slug'], 'unique'], // 唯一
// [['slug'],'filter','filter'=>function($value){ // slug定义过滤器
// return StringHelper::generateCleanStr($value);
// }],
// [['title'],'default','value'=>function($model,$attribute){ // 默认值定义
// return '未命名文档';
// }],
];
}
/**
* save 前置方法
*/
public function beforeSave($insert)
{
//$error = $this->validate(); // save保存数据不需要手动调用rules验证规则
if(parent::beforeSave($insert)){
if($insert){
$this->create_time = time();
}
$this->update_time = time();
return true;
}else{
return false;
}
}
/**
* 根据用户ID获取用户信息
*
* @param $id
* @return null|static
*/
public static function findIdentity($id) {
return static::findOne($id);
}
/**
* save 后置方法
*/
public function afterSave()
{
echo "保存后置";
}
/**
* delete 后置方法
*/
public function afterDelete(){
die("删除后置");
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。