overals  
          
              
                June 20, 2016,  7:25pm
               
              1 
           
         
        
          Доброго времени суток.
Начал переносить проект с yii на yii2. И уперся в проблеме горизонтального и вертикального шардинга для моделей AR.
Есть ли номральный вариант для этого?
Хотелось бы переделать конструктор, для передачи числа и в зависимости от этого числа менять коннекшин, но в yii2 метод getdb статический.
Нашел только такое решение на гите "/axiles89/yii2-sharding" но мне оно показалось слишком сложным и не удобным. Есть ли другой способ?
         
        
           
         
            
       
      
        
          
          
            samdark  
          
              
                June 21, 2016,  5:25pm
               
              2 
           
         
        
          У axiles89 вроде нормальное решение.
         
        
           
         
            
       
      
        
          
          
            overals  
          
              
                June 21, 2016,  8:13pm
               
              3 
           
         
        
          
Хорошее решение было в yii 1.x.x екстеншин назывался MultiActiveRecord.
         
        
           
         
            
       
      
        
          
          
            overals  
          
              
                June 22, 2016,  1:08pm
               
              4 
           
         
        
          Может кому-то пригодится:
В моделе:
    private static $dbname='db';
    public function setDb($db){
        self::$dbname = $db;
        return $this;
    }
    public static function getDb()
    {
        return Yii::$app->get(self::$dbname);
    }
И используем так:
$model = Yii::createObject(Users::className());
$raw = $model->setDb('db1')->findOne(['email'=>'test@test.com']);
Это всего лишь простой пример. От этого уже можно скакать куда угодно.
И как по мне это на много удобнее и проще, чем то что в гите я нашел.
         
        
           
         
            
       
      
        
          
          
            samdark  
          
              
                June 24, 2016,  7:56am
               
              5 
           
         
        
          Да, нормально. Стоит сделать метод не статическим в 2.1? Если да, заводите issue.