phalcon 的curd操作

  • select

    • findFirst
 $result = Model::findFirst(array(
                 'columns'=>array('create_time'),
                 'order'=>'id desc'
            ));   
  • find
$result = Model::find(array(
            "conditions" => "created_time = :time:",
            "order" => "id ASC",
            "bind" => array(
                'time' => '2018-05-78'
            )
        ))
  • 分页 and 单表
<?php
class model extends \Phalcon\Mvc\Model{
    public function test(){
        $builder = $this->modelsManager->createBuilder()
            ->columns('*')
            ->from('Modules\Models\Entities\SwapProfitStatistics')
            ->orderBy('id desc');
        if(!empty($filter)){
            if(isset($filter['time'])){
                $builder->andWhere('created_time = :time:', array(
                    'time' => $filter['time']
                ));
            }
        }
        $paginator = new PaginatorQueryBuilder(array(
            "builder" => $builder,
            "limit" => $pageSize,
            "page" => $page
        ));
        return $paginator->getPaginate();
    }
} 
  • 分页 and 多表join
$builder = $this->modelsManager->getModelsManager()->createBuilder()-> 
              columns(array('pc.name','pi.companyName','bc.dataName'))
            ->addfrom("Modules\Models\Entities\Pe\PeCompany",'pc')
            ->leftjoin("Modules\Models\Entities\Pe\PeInvestment",'pc.id = pi.orgId','pi')
            ->leftjoin("Modules\Models\Entities\Base\BaseData",'pi.classification = bc.dataCode','bc')
            ->andWhere('pc.id = :id:',array('id'=>$companyId))
            ->orderBy('pc.id desc');

        $paginator = new PaginatorQueryBuilder(array(
            "builder"=>$builder,
            "limit"=>$limit,
            "page"=>$offset
        ));
        $result = $paginator->getPaginate();
  • 不分页 and 多表
 $query = Model::query()->leftjoin("Modules\Models\Entities\Contents\CmsContentArticle",
            "[Modules\Models\Entities\Contents\CmsContent].id = CmsA.contentId","CmsA")
            ->columns(array("[Modules\Models\Entities\Contents\CmsContent].title AS CmsContentTitle","[Modules\Models\Entities\Contents\CmsContent].id AS id",
                "[Modules\Models\Entities\Contents\CmsContent].classId AS classId","CmsA.content"))
            ->andWhere('[Modules\Models\Entities\Contents\CmsContent].disabled = 0');
$queryResult = $query->bind($bindingInfo)->execute();
  • 不分页 and 单表
$query = Model::query()->columns(array('id','name','expect_return'))->andWhere('category_frontend = :type:')->orderBy('id desc');
        $bindInfo['type'] = $filterArray['type'];
        if(!empty($filterArray['name'])){
            $query->andWhere('name like :name:');
            $bindInfo['name'] = '%'.$filterArray['name'].'%';
        }
        $res = $query->bind($bindInfo)->execute();
        if($res){
            return $res->toArray();
        }else{
            return null;
        }
  • PHQL 查询
#方法1
use Phalcon\Mvc\Model\Query;
$query = new Query("SELECT SUM(reward) AS nums FROM Modules\Models\Entities\AccountStatistics WHERE date = :date: AND type = :type:",$this->getDI());
        $cars = $query->execute(array('date' => $date,'type'=>$type));
#方法2
$query = $this->modelsManager->createQuery("SELECT * FROM Cars WHERE name = :name:");
$cars  = $query->execute(
    array(
        'name' => 'Audi'
    )
);  
#方法3
$cars = $this->modelsManager->executeQuery("SELECT * FROM Cars WHERE name = :name:", array(
    'name' => 'Audi'
));    
  • insert

$accountStatistics = new AccountStatistics();
        $keys = get_class_vars('Modules\Models\Entities\AccountStatistics');
        foreach ($keys as $key => $val) {
            if (array_key_exists($key, $info)) {
                $accountStatistics->$key = $info[$key];
            }
        }

        if ($accountStatistics->save()) {
            return $accountStatistics;
        }
  • update

 $accountStatistics = AccountStatistics::findFirst(array(
            'conditions' => 'accountId = :accountId: and date = :date: and type = :type:',
            'bind' => array(
                'accountId'=>$info['accountId'],
                'date'=>$info['date'],
                'type'=>$info['type']
            )
        ));
        if ($accountStatistics === false) {
            return false;
        }
        $keys = get_class_vars('Modules\Models\Entities\AccountStatistics');

        foreach ($keys as $key => $val) {
            if (array_key_exists($key, $info)) {
                $accountStatistics->$key = $info[$key];
            }
        }

        if ($accountStatistics->save()) {
            return true;
        }
  • delete

AccountStatistics::findFirst(9)->delete();
发布了48 篇原创文章 · 获赞 0 · 访问量 334

猜你喜欢

转载自blog.csdn.net/qq_21389693/article/details/105730131