Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Crow
    @2x2studio

    <?php $this->layout('app:layout');?>

    <h2><?=$_($message); ?></h2>

    Crow
    @2x2studio
    This message was deleted

    code

    code

    ''' var code = '''
    var code = 1 ;
    code
    code
    code
    ```
    This message was deleted
    Crow
    @2x2studio
    This message was deleted
    This message was deleted
    Crow
    @2x2studio
    function process($request){
         $user = $this->builder->....;
         if($user == null && in_array($request->attributes()->get('processor'), $this->protectedProcessors)){
              return $someRedirectResponse;
         } 
         return parent::process($request);
    }
    в папке /src/Project/Framework/ sozdajesh Configuration.php
    namespace Project\Framework;
    class Configuration extends \PHPixie\BundleFramework\Configuration{
         private function buildHttpProcessor()
        {
              return new YourAwesomeProcessor(parent::buildHttpProcessor());
        }
    }
    class YourAwesomeProcessor implements \PHPixie\Processors\Processor\Selective{
           protected $httpProcessor;
           public function __construct($httpProcessor) {
                    $this->httpProcessor = $httpProcessor;
           }
    
           public function isProcessable($request){
                 return $this->httpProcessor->isProcessable($request);
           }
    
    
           public function process($request){
                 if(/*check if page is accessable*/) {
                       return $this->httpProcessor->isProcessable($request);
                 }
                  return /* redirect to login page*/ ;
           }
    }
    Crow
    @2x2studio

    @bobdubnod
    Всем привет! Я что-то запутался и не могу разобраться. Может кто-нибудь подсказать, чтобы я разобрался и уже смог понимать (а дальше уже доки будет просто читать).
    Суть в следующем:
    есть таблицы в базе (MySQL): groups, contacts, contact_groups, contact_phones
    соответственно, связи: contacts.group_id = contact_groups.contact и contact_groups.group_id = groups.id, а contacts.phone = contact_phones.phone (такая логика))
    Как можно с ORM или хотя бы Database сделать соответствующий запрос?

    SELECT COUNT(cp.id) cpCount FROM groups g, contacts c, contact_phones cp, contact_groups cg WHERE g.id = 2 AND cg.group_id = g.id AND c.id = cg.contact AND c.id = cp.contact;

    Или хотя бы примерно?
    @bobdubnod

    
                    $usersCount = $usersQuery
                        ->table('contacts', 'c')
                        ->join('contact_groups', 'g')
                            ->on('g.contact', 'c.id')
                        ->where('g.group_id', $id)
                        ->fields(array('count'=> $database->sqlExpression('COUNT(c.id)')))
                        ->execute()
                        ->asArray(true);
                    $phonesCount = $phonesQuery
                        ->table('contacts', 'c')
                        ->join('contact_groups', 'g')
                            ->on('g.contact', 'c.id')
                        ->join('contact_phones', 'p', 'left')
                            ->on('p.contact', 'c.id')
                        ->where('g.group_id', $id)
                        ->fields(array('count'=> $database->sqlExpression('COUNT(p.id)')))
                        ->execute()
                        ->asArray(true);
    var_dump($usersCount[0]->count, $phonesCount[0]->count);

    лучше пока не смог придумать)
    @Linfuby

            // Получаем сущность группы
            $group = $this->orm()->query('group')->in(2)->findOne();
            // Получаем запрос Контактов и фильтруем по сущности группы
            echo $this->orm()->query('contact')->relatedTo('group', $group)->count();
            // Получаем запрос Телефонов и фильтруем по сущности группы через Котакты
            echo $this->orm()->query('phone')->relatedTo('contact.group', $group)->count();

    Конечно contacts должно быть связано в конфиге ORM с группой, а телефоны с контактами

    // Связь контакта c телефонами (Один Контакт ко многим телефонам)
    return array(
        'type'         => 'oneToMany',
        'owner'        => 'contact',
        'items'        => 'phone',
        'ownerOptions' => array(
            'itemsProperty' => 'phones',
        ),
        'itemsOptions' => array(
            'ownerProperty' => 'contact',
            'ownerKey'      => 'contact_id',
        ),
    );
    // Связь Контакта с группой (Одна группа ко многим контактам.  Если наоборот - поменять местами имена моделей)
    return array(
        'type'         => 'oneToMany',
        'owner'        => 'group',
        'items'        => 'contact',
        'ownerOptions' => array(
            'itemsProperty' => 'contacts',
        ),
        'itemsOptions' => array(
            'ownerProperty' => 'group',
            'ownerKey'      => 'group_id',
        ),
    );
    Crow
    @2x2studio
    public function editUser($request){
        if($request->attributes()->get('mountedTo') == 'users'){
            $this->editUser($request);
        } else {
            $this->editGroup($request);
        }
    }
    Crow
    @2x2studio
    function process($request){
         $user = $this->builder->....;
         if($user == null && in_array($request->attributes()->get('processor'), $this->protectedProcessors)){
              return $someRedirectResponse;
         } 
         return parent::process($request);
    }
    Crow
    @2x2studio
    @dracony
    class YourRepository implements \PHPixie\AuthLogin\Repository 
    {
          /**
            * @returns YourUser
            */
          public function getByLogin($login) {
    
          }
    
          /**
            * @returns YourUser
            */
          public function getById($id) {
    
          }
    }
    class YourUser implements \PHPixie\AuthLogin\Repository\User{
          public function id() {
    
          }
    
    
          public function passwordHash() {
    
          }
    }
    Roman Tsiupa
    @dracony
    звали =)?
    а) ясно)
    если пользователя упомянуть в чате получается инвайт сразу =)
    Crow
    @2x2studio
    )))
    то я се копил в чатик то что может понадобитсья ))
    так сказать TODO на рассмотреть )
    Roman Tsiupa
    @dracony
    а =)
    Crow
    @2x2studio
    или памятки для следующий поколений )
    Crow
    @2x2studio
    var_dump(current($orm->query('filter')->planFind()->steps())->query()->parse())
    Roman Tsiupa
    @dracony
    =)
    a chto ne tak?
    Crow
    @2x2studio
    Да все так. Тю я че опять скопив твой код тя заинвайтил ?
    Roman Tsiupa
    @dracony
    ugu))
    Crow
    @2x2studio
    Сорри. Я уже себе в README.md хелпер пишу )
    Больше не повторится )
    Roman Tsiupa
    @dracony
    ta pishy sjuda)))
    mne ne slozhni chitatj)))