CategoryAdviser.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: xiaofeng
  5. * Date: 2018/3/4
  6. * Time: 上午9:28
  7. */
  8. namespace common\models;
  9. //use yii\db\ActiveRecord;
  10. //use yii\behaviors\TimestampBehavior;
  11. class CategoryAdviser extends Common
  12. {
  13. // public $setDel = 1;
  14. // public function behaviors()
  15. // {
  16. // return [
  17. // [
  18. // 'class' => TimestampBehavior::className(),
  19. // 'attributes' => [
  20. // # 创建之前
  21. // ActiveRecord::EVENT_BEFORE_INSERT => ['create_at', 'update_at'],
  22. // # 修改之前
  23. // ActiveRecord::EVENT_BEFORE_UPDATE => ['update_at']
  24. // ],
  25. // #设置默认值
  26. // 'value' => $_SERVER['REQUEST_TIME']
  27. // ]
  28. // ];
  29. // }
  30. public function rules()
  31. {
  32. return [
  33. [['name','experience'],'required','message'=>'不能为空'],
  34. ['name', 'unique', 'targetClass' => 'common\models\CategoryAdriser','on'=>['add'],'message'=>'该城市名称已经存在'],
  35. ['photo','string','max'=>50],
  36. ['del','default','value'=>1],
  37. ['del','in','range'=>[1,2]],
  38. ];
  39. }
  40. /*
  41. * 调用里面的验证,错误返回数组,正确返回对象
  42. * */
  43. public function Authenticator($input)
  44. {
  45. $this->load($input,'');
  46. if(!$this->validate()) return $this->errors;
  47. return $this;
  48. }
  49. public function FindById($id)
  50. {
  51. return self::findOne($id);
  52. }
  53. public function getList($page,$arr = null)
  54. {
  55. $query = self::find();
  56. $query->select($arr);
  57. $query = $this->WhereColumn($query);
  58. if(!empty($page['page']))
  59. {
  60. $query->offset = ($page['page'] - 1) * $page['limit'];
  61. $query->limit = $page['limit'];
  62. }
  63. return $query->asArray()->all();
  64. }
  65. private function WhereColumn($query)
  66. {
  67. $query->andFilterWhere(['name'=>$this->name]);
  68. $query->andWhere(['del'=>$this->setDel]);
  69. return $query;
  70. }
  71. public function Total()
  72. {
  73. $query = self::find();
  74. $query = $this->WhereColumn($query);
  75. return $query->count();
  76. }
  77. public function GetAdviser()
  78. {
  79. $query = self::find();
  80. $query->select(['id', 'name', 'experience', 'photo']);
  81. $query->orderBy('RAND()');
  82. return $query->asArray()->one();
  83. }
  84. }