Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Autoría | Ultima modificación | Ver Log |

<?php

declare(strict_types=1);

namespace LeadersLinked\Helper;

use Laminas\View\Helper\AbstractHelper;
use Laminas\Db\Adapter\AdapterInterface;
use LeadersLinked\Mapper\UserMapper;
use LeadersLinked\Mapper\QueryMapper;
use LeadersLinked\Model\GroupMember;
use LeadersLinked\Mapper\GroupMemberMapper;
use LeadersLinked\Model\User;

class GroupMembersHelper extends AbstractHelper
{
    
    /**
     *
     * @var AdapterInterface
     */
    private $adapter;
    
    
    /**
     *
     * @param AdapterInterface $adapter
     */
    public function __construct($adapter)
    {
        $this->adapter      = $adapter;
    }
    
    public function __invoke($group_id, $current_user_id = 0)
    {   

        $mapper = QueryMapper::getInstance($this->adapter);
        $select = $mapper->getSql()->select();
        $select->columns(['id', 'uuid', 'first_name', 'last_name', 'image']);
        $select->from(['u' => UserMapper::_TABLE]);
        $select->join(['gm' => GroupMemberMapper::_TABLE], 'gm.user_id = u.id ', []);
        $select->where->equalTo('gm.group_id', $group_id);
        $select->where->in('gm.status', GroupMember::STATUS_ACCEPTED);
        $select->where->equalTo('u.status', User::STATUS_ACTIVE);
        $select->order(['last_name', 'first_name']);
        
        //echo $select->getSqlString($this->adapter->platform); exit;
        
        $items = $mapper->fetchAll($select);
        return $this->getView()->render('helpers/group-members.phtml', ['items' => $items]);
    }
}