XsBehavior.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: NODELOG
  5. * Date: 16/7/24
  6. * Time: 下午10:53
  7. */
  8. namespace common\behaviors;
  9. use common\models\Article;
  10. use common\models\Search;
  11. use yii\base\Behavior;
  12. use yii\db\ActiveRecord;
  13. class XsBehavior extends Behavior
  14. {
  15. public function events()
  16. {
  17. return [
  18. ActiveRecord::EVENT_AFTER_INSERT => [$this, 'afterSaveInternal'],
  19. ActiveRecord::EVENT_AFTER_UPDATE => [$this, 'afterSaveInternal']
  20. ];
  21. }
  22. public function afterSaveInternal($event)
  23. {
  24. $article = Article::findOne(['id' => $event->sender->id]);
  25. if (!empty($article)) {
  26. if ($event->name == 'afterInsert') {
  27. $search = new Search();
  28. $search->id = $event->sender->id;
  29. } else {
  30. $search = Search::findOne($event->sender->id);
  31. }
  32. $search->status = $article->status;
  33. $search->title = $article->title;
  34. $search->content = $event->sender->content;
  35. $search->published_at = $article->published_at;
  36. $search->save();
  37. }
  38. }
  39. }