You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							93 lines
						
					
					
						
							2.0 KiB
						
					
					
				
			
		
		
	
	
							93 lines
						
					
					
						
							2.0 KiB
						
					
					
				| <?php | |
|  | |
| namespace common\modules\blog\entities; | |
|  | |
| use core\entities\user\User; | |
| use yii\db\ActiveQuery; | |
| use yii\db\ActiveRecord; | |
| use Yii; | |
|  | |
|  | |
| /** | |
|  * @property int $id | |
|  * @property int $created_at | |
|  * @property int $post_id | |
|  * @property int $user_id | |
|  * @property int $parent_id | |
|  * @property string $text | |
|  * @property bool $active | |
|  * | |
|  * @property BlogPost $post | |
|  */ | |
| class BlogComment extends ActiveRecord | |
| { | |
|     public static function create($userId, $parentId, $text): self | |
|     { | |
|         $review = new static(); | |
|         $review->user_id = $userId; | |
|         $review->parent_id = $parentId; | |
|         $review->text = $text; | |
|         $review->created_at = time(); | |
|         $review->active = true; | |
|         return $review; | |
|     } | |
|  | |
|     public function edit($parentId, $text): void | |
|     { | |
|         $this->parent_id = $parentId; | |
|         $this->text = $text; | |
|     } | |
|  | |
|     public function attributeLabels() | |
|     { | |
|         return [ | |
|             'id' => Yii::t('blog', 'ID'), | |
|             'user_id' => Yii::t('blog', 'User'), | |
|             'parent_id' => Yii::t('blog', 'Parent Comment ID'), | |
|             'created_at' => Yii::t('blog', 'Created At'), | |
|             'active' => Yii::t('blog', 'Published'), | |
|             'post_id' => Yii::t('blog', 'Post'), | |
|             'text' => Yii::t('blog', 'Comment'), | |
|         ]; | |
|     } | |
|  | |
|     public function activate(): void | |
|     { | |
|         $this->active = true; | |
|     } | |
|  | |
|     public function draft(): void | |
|     { | |
|         $this->active = false; | |
|     } | |
|  | |
|     public function isActive(): bool | |
|     { | |
|         return $this->active == true; | |
|     } | |
|  | |
|     public function isIdEqualTo($id): bool | |
|     { | |
|         return $this->id == $id; | |
|     } | |
|  | |
|     public function isChildOf($id): bool | |
|     { | |
|         return $this->parent_id == $id; | |
|     } | |
|  | |
|     public function getPost(): ActiveQuery | |
|     { | |
|         return $this->hasOne(BlogPost::class, ['id' => 'post_id']); | |
|     } | |
|  | |
|     public function getUser(): ActiveQuery | |
|     { | |
|         return $this->hasOne(User::class, ['id' => 'user_id']); | |
|     } | |
|  | |
|     public static function tableName(): string | |
|     { | |
|         return '{{%blog_comments}}'; | |
|     } | |
| } |