MessageForm.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: NODELOG
  5. * Date: 16/8/7
  6. * Time: 下午10:32
  7. */
  8. namespace common\modules\message\models;
  9. use common\modules\user\models\User;
  10. use yii\base\Model;
  11. class MessageForm extends Model
  12. {
  13. public $toUid;
  14. public $toUsername;
  15. public $content;
  16. public function rules()
  17. {
  18. return [
  19. [['toUsername', 'content'], 'required'],
  20. [['toUsername', 'content'], 'string'],
  21. ['toUsername', 'exist', 'targetClass' => User::className(), 'targetAttribute' => 'username', 'message' => '收信人不存在'],
  22. ['toUid', 'default', 'value' => function($model, $attribute){
  23. $user = User::findByUsernameOrEmailTel($model->toUsername);
  24. return is_null($user) ? null : $user->id;
  25. }],
  26. ['toUid', 'compare', 'operator' => '!=', 'compareValue' => \Yii::$app->user->id, 'message' => '自己不能给自己发私信']
  27. ];
  28. }
  29. public function attributeLabels()
  30. {
  31. return [
  32. 'toUsername' => '收信人',
  33. 'content' => '内容'
  34. ];
  35. }
  36. public function send()
  37. {
  38. if ($this->validate()) {
  39. $messageDataModel = new MessageData();
  40. $messageDataModel->content = $this->content;
  41. $messageDataModel->save();
  42. $messageModel = new Message();
  43. $messageModel->from_uid = \Yii::$app->user->id;
  44. $messageModel->to_uid = $this->toUid;
  45. $messageModel->message_id = $messageDataModel->id;
  46. $messageModel->save();
  47. return true;
  48. }
  49. return false;
  50. }
  51. }