2017-02-22 49 views
2

Здравствуйте У меня в конфиге/database.php префикс (MySQL), как это:Override префикс таблиц для модели

 'prefix' => 'myprefix_', 

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

 protected $table = 'otherprefix_mytable'; 

Таким образом, laravel ищет «myprefix_otherprefix_mytable».

Любая помощь?

ответ

3

В ваших app/config/database.php делают 2 различных соединений, как

'connections' => array(

     # first prefix 
     'mysql1' => array(
      'driver' => 'mysql', 
      'host'  => 'host1', 
      'database' => 'database1', 
      'username' => 'user1', 
      'password' => 'pass1' 
      'charset' => 'utf8', 
      'collation' => 'utf8_unicode_ci', 
      'prefix' => 'prefix1', 
     ), 

     # second prefix 
     'mysql2' => array(
      'driver' => 'mysql', 
      'host'  => 'host1', 
      'database' => 'database1', 
      'username' => 'user1', 
      'password' => 'pass1' 
      'charset' => 'utf8', 
      'collation' => 'utf8_unicode_ci', 
      'prefix' => 'prefix2', 
     ), 
    ), 

А потом в модели можно использовать различные соединения

class SomeModel extends Eloquent {  
    protected $connection = 'mysql2';  
} 

Для дополнительной проверки помощи this

0

По умолчанию префикс таблицы может быть переопределение в модели laravel в следующем примере:


public function __construct(array $attributes = array()) { 
    $colletion = Config::get('database'); 
    $collection['connections']['mysql']['prefix'] = 'consultancy_'; 
    Config::set('database',$collection); 
    parent::__construct($attributes); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^