ZComponent.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php
  2. /**
  3. * Created by JetBrains PhpStorm.
  4. * User: charlie
  5. * Date: 13-12-20
  6. * Time: 下午4:24
  7. * To change this template use File | Settings | File Templates.
  8. */
  9. class ZComponent extends CComponent
  10. {
  11. public $c_time = 0;
  12. public function __construct(){
  13. $this->c_time = time();
  14. }
  15. /**
  16. * 获取单个数据模型信息
  17. */
  18. protected function getMultipleModelInfo($model, $condition, $fields=null){
  19. $cursor = $model->getCollection()->find($condition, $fields);
  20. $model_info = array();
  21. foreach ($cursor as $v){
  22. $model_info[] = $v;
  23. }
  24. return $model_info;
  25. }
  26. //判断ID是否存在
  27. public function idExist($id){
  28. $obj = null;
  29. if(CommonFn::isMongoId($id)){
  30. $_id = new MongoId($id);
  31. $_obj = $this->get($_id);
  32. if($_obj&&isset($_obj->attributes)&&!empty($_obj->attributes)){
  33. $obj = $_obj->attributes;
  34. }
  35. return $obj;
  36. }
  37. }
  38. /**
  39. * 获取多个数据模型信息
  40. */
  41. protected function getSingleModelInfo($model, $condition, $fields=array(), $deault=''){
  42. //var_dump($fields);exit;
  43. $cursor = $model->getCollection()->findOne($condition, $fields);
  44. $key = null;
  45. if (is_array($fields) && count($fields) == 1){
  46. $keys = array_keys($fields);
  47. $key = $keys[0];
  48. if ($cursor){
  49. $model_info = $cursor[$key];
  50. } else {
  51. $model_info = $deault;
  52. }
  53. } else {
  54. $model_info = $cursor;
  55. }
  56. return $model_info;
  57. }
  58. protected function getList($model,$_ids, $fields=array(), $default=''){
  59. if (is_array($_ids)){
  60. $where = array('_id' => array('$in' => $_ids));
  61. $items = $this->getMultipleModelInfo($model, $where, $fields);
  62. $list = array();
  63. if (is_array($fields) && count($fields) == 1){
  64. $keys = array_keys($fields);
  65. $key = $keys[0];
  66. foreach ($items as $v){
  67. $list[] = $v[$key];
  68. }
  69. } else {
  70. foreach ($items as $v){
  71. $list[] = $v;
  72. }
  73. }
  74. } else {
  75. $where = array('_id' => $_ids);
  76. $list = $this->getSingleModelInfo($model, $where, $fields, $default);
  77. }
  78. return $list;
  79. }
  80. protected function getOne($model,$_id){
  81. $criteria = new EMongoCriteria();
  82. $criteria->_id('==', $_id);
  83. $_moudel = $model->find($criteria);
  84. return $_moudel;
  85. }
  86. }