NoticeTrait.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Ming
  5. * Date: 2017/10/18
  6. * Time: 11:42
  7. */
  8. namespace common\traits;
  9. use Yii;
  10. use yii\helpers\Json;
  11. use common\widgets\Alert;
  12. trait NoticeTrait {
  13. /**
  14. * 发送通知
  15. * @param $message
  16. * @param string $attr
  17. * @param null $extend
  18. * @param int $code
  19. * @return array
  20. */
  21. public function notice($message, $attr = 'error', $extend = null, $code = 200){
  22. if($attr != 'success'){
  23. Yii::$app->response->setStatusCode(422);
  24. $error = 1;
  25. }else{
  26. $error = 0;
  27. }
  28. $type = (!$extend) ? $attr : $extend;
  29. $response = ['code' => $code, 'message' => $message, 'error' => $error, 'type' => $type];
  30. return $response;
  31. }
  32. /**
  33. * 魔术方法
  34. * @param $name
  35. * @param $params
  36. * @return bool
  37. */
  38. public function __call($name, $params){
  39. $types = (new Alert())->alertTypes;
  40. if(!array_key_exists($name, $types)){
  41. return false;
  42. }
  43. $code = (isset($params[2])) ? $params[2] : 200;
  44. $extend = isset($params[1]) ? $params[1] : null;
  45. return $this->notice($params[0], $name, $extend, $code);
  46. }
  47. }