2017-01-01 5 views
0

У меня есть таблица под названием table1 и столбцы с именами id, name, field1, field2, field3.таблицы базы данных Alter с помощью hasColumns Laravel

И я хочу проверить, что столбцы существуют. Если какой-либо из столбцов не существует, я хочу добавить эти столбцы в таблицу.

Например: у меня есть имена столбцов, называемых id, name, field1, field2, field3. И я хочу проверить, есть ли какие-либо столбцы с именем field3, field4, field5. В этом field3 существует и другие 2 нет. поэтому я хочу добавить, что 2 столбца в таблице table1. Возможно ли это с использованием hasColumns?. Или предложите мне другие способы?

+1

Вы должны изменить структуру БД. То, что вы пытаетесь сделать, - это действительно плохая практика. –

+0

Вы имели в виду, что нет возможных путей ??? –

+0

Есть несколько способов, но вы не должны использовать их. Я уверен, что вы можете хранить данные 'fieldX' как объекты JSON в БД без динамического создания дополнительных полей. Или найдите другой способ хранения данных. –

ответ

0

Внутри метода контроллера написать следующий код:

\Schema::table('table1', function (\Illuminate\Database\Schema\Blueprint $table) { 
     if (!\Schema::hasColumns('table1', ['field4', 'field5'])) { 
      $table->string('field4'); 
      $table->string('field5'); 
     } 
    }); 

Чтобы узнать больше, посетите Table Migration

+0

Спасибо за ваш ответ. На самом деле я хочу сделать все это с помощью контроллера. –

+0

Я отредактировал ответ. Внутри вашего контроллера напишите приведенный выше код – mrabbani

+0

Как насчет кода, если (! \ Schema :: hasColumns ('table1', ['field3', 'field4', 'field5'])) { –