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.
		
		
		
		
			
				
					36 lines
				
				814 B
			
		
		
			
		
	
	
					36 lines
				
				814 B
			| 
											7 years ago
										 | <?php
 | ||
|  | 
 | ||
|  | namespace common\modules\blog\repositories;
 | ||
|  | 
 | ||
|  | use common\modules\blog\entities\BlogPost;
 | ||
|  | use core\repositories\NotFoundException;
 | ||
|  | 
 | ||
|  | class BlogRepository
 | ||
|  | {
 | ||
|  |     public function get($id): BlogPost
 | ||
|  |     {
 | ||
|  |         if (!$post = BlogPost::findOne($id)) {
 | ||
|  |             throw new NotFoundException('Post is not found.');
 | ||
|  |         }
 | ||
|  |         return $post;
 | ||
|  |     }
 | ||
|  | 
 | ||
|  |     public function existsByCategory($id): bool
 | ||
|  |     {
 | ||
|  |         return BlogPost::find()->andWhere(['category_id' => $id])->exists();
 | ||
|  |     }
 | ||
|  | 
 | ||
|  |     public function save(BlogPost $post): void
 | ||
|  |     {
 | ||
|  |         if (!$post->save()) {
 | ||
|  |             throw new \RuntimeException('Saving error.');
 | ||
|  |         }
 | ||
|  |     }
 | ||
|  | 
 | ||
|  |     public function remove(BlogPost $post): void
 | ||
|  |     {
 | ||
|  |         if (!$post->delete()) {
 | ||
|  |             throw new \RuntimeException('Removing error.');
 | ||
|  |         }
 | ||
|  |     }
 | ||
|  | }
 |