数据模型

1.数据库的配置在
Yii框架专门提供了一个配置文件(basic/config/db.php)给我们。
2.创建数据库模型
数据模型:
1,和表名一致的文件;
2,引入命名空间:namespace app\models;
3, 使用命名空间:use yii\db\ActiveRecord;
4, 创建与表名一致的类并继承ActiveRecord;

sql语法:
查询:
// $sql='select * from Test where id=:id ';<br>
// $result=Test::findBySql($sql,array(':id'=>2))->asArray()->all();//findBySql第二个参数设置占位符<br>
//id>=1 and id<=2
//$results = Test::find()->where(['between','id',1,2])->all();
//echo count($results);

//title like '%title%'
//$results=Test::find()->where(['like','title','title'])->all();
//print_r($results);

//将查询结果转换成数组
// $results=Test::find()->where(['like','title','title'])->asArray()->all();

//批量查询
foreach ($Test::find()->batch(2) as $value) {
# code...
}
print_r($results);
删除:
//删除数据有个更快捷的方式:调用控制器当中的deleteAll()方法把整个表里的数据删掉;同时这个方法里也可以带上查询条件指定删除哪部分的数据。
//Test::deleteAll('id>0');
Test::deleteAll('id>:id',array(':id'=>0));//deleteAll也支持占位符的功能
添加
//      $orders = new Orders();
//      $orders->oid ='1';
//      $orders->status = '1';
//      $orders->validate();//验证器,验证字段是否合法
//      if($orders->hasErrors()){
//          echo 'data is error';//字段不合法
//          die;
//      }
//      $orders->save();

修改
    $test=Orders::find()->where(['coid'=>1729])->one();
        //PRINT_R($test);DIE;
        $test->status='1';
        $test->save();
联表操作
关联查询:
use yii\db\ActiveRecord;
class Customer extends ActiveRecord{//帮助顾客获取订单
自己进行定义
public function getOrders(){
$result=$this->hasMany(order::className(),['customer_id'=>'id'])->asArray()->all();
return $result;
}
}
关联查询:
hasMany:一对多,hasOne:一对一
$customer->orders; $customer当没有orders属性时,$customer自动调用_get()方法,拼接调用getOrders()方法,并自动在后面加上all()方法或者one()方法,至于何时自动拼接all或者one,取决于关联查询是用的hasMany还是hasOne,如果是hasMany则拼接all,否则反之。
//关联查询
//根据顾客查询她/他的订单的信息
// $customer = Customer::find()->where(['name'=>'zhangsan'])->one();
customer表 customer_id(是$customer返回的这条数据中的customer_id)  ordes表 id 关联
// $order = $customer->hasMany('app\models\Order',
['customer_id'=>'id'])->asArray()->all();
// $orders = $customer->getOrders();
// $orders = $customer->orders;
// print_r($orders);

//根据订单查询顾客的信息
$order = Order::find()->where(['id'=>1])->one();
$customer = $order->customer; //以属性的方式获取数据
print_r($customer);
注:若使用以属性的方式获取数据,则在模型里面要定义一个方法,该方法要以get+属性的命名方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值