Advertisement
Guest User

Пример кода

a guest
Sep 18th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.67 KB | None | 0 0
  1. <?php
  2.  
  3.  
  4. class Posts {
  5.  
  6.     private $postUserId;
  7.     private $postsArr;
  8.     private $userPostsArr;
  9.     private $postInfoArr;
  10.  
  11.  
  12.     public function get($id = false, $limit = false) {
  13.         if ($id) {
  14.             $this->postUserId = $id;
  15.             $this->userPostsArr = $this->getUserPosts($id, $limit);
  16.             $userPostIdsStr = implodeIds($this->userPostsArr, 'post_id');
  17.             $this->postInfoArr = $this->getPostsInfo($userPostIdsStr);
  18.             $this->postsArr = $this->postCombine();
  19.  
  20.         } else {
  21.             $this->userPostsArr = $this->getPostsInfo();
  22.         }
  23.         return $this->postsArr;
  24.     }
  25.  
  26.     private function getUserPosts($id, $limit = false) {
  27.         $select = DB::select('staff_employee_posts');
  28.         $select->whereEquals('id_emp', $id);
  29.         if ($limit) {
  30.             $select->limit($limit);
  31.         }
  32.         return $select->fetchAll();
  33.     }
  34.  
  35.     private function getPostsInfo($postIdsStr = false) {
  36.         $select = DB::select('staff_posts');
  37.             if ($postIdsStr) {
  38.                 $select->whereIn('id', $postIdsStr);
  39.             }
  40.             return $select->fetchAll();
  41.     }
  42.  
  43.     private function postCombine() {
  44.         $postArrById = arrayToAssoc($this->postInfoArr, 'id');
  45.         if ($this->userPostsArr) {
  46.             foreach ($this->userPostsArr as $post) {
  47.                 $postsArr[] = new Post(
  48.                     $post += (array_key_exists($post['post_id'], $postArrById)) ? $postArrById[$post['post_id']] : []
  49.                 );
  50.             }
  51.         } else {
  52.             $postsArr[] = new Post(['name' => 'Не заполнено']);
  53.         }
  54.  
  55.         return $postsArr;
  56.     }
  57.  
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement