Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class Posts {
- private $postUserId;
- private $postsArr;
- private $userPostsArr;
- private $postInfoArr;
- public function get($id = false, $limit = false) {
- if ($id) {
- $this->postUserId = $id;
- $this->userPostsArr = $this->getUserPosts($id, $limit);
- $userPostIdsStr = implodeIds($this->userPostsArr, 'post_id');
- $this->postInfoArr = $this->getPostsInfo($userPostIdsStr);
- $this->postsArr = $this->postCombine();
- } else {
- $this->userPostsArr = $this->getPostsInfo();
- }
- return $this->postsArr;
- }
- private function getUserPosts($id, $limit = false) {
- $select = DB::select('staff_employee_posts');
- $select->whereEquals('id_emp', $id);
- if ($limit) {
- $select->limit($limit);
- }
- return $select->fetchAll();
- }
- private function getPostsInfo($postIdsStr = false) {
- $select = DB::select('staff_posts');
- if ($postIdsStr) {
- $select->whereIn('id', $postIdsStr);
- }
- return $select->fetchAll();
- }
- private function postCombine() {
- $postArrById = arrayToAssoc($this->postInfoArr, 'id');
- if ($this->userPostsArr) {
- foreach ($this->userPostsArr as $post) {
- $postsArr[] = new Post(
- $post += (array_key_exists($post['post_id'], $postArrById)) ? $postArrById[$post['post_id']] : []
- );
- }
- } else {
- $postsArr[] = new Post(['name' => 'Не заполнено']);
- }
- return $postsArr;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement