2013-07-25 1 views
0

У моей схемы есть столбец типа «бит (1)». Я не нашел способа, которым это может быть выражено в Топливе. Они, похоже, не поддерживают тип «бит» и не могут правильно создавать запросы на вставку.Добавить поле MySQL типа «бит» в модель FuelPHP

Есть ли способ (возможно, недокументирован), чтобы получить топливо для поддержки этого?

ответ

1

hmm ... orm предположительно принимает поле бит.

Я создал модель из базы данных. Посмотрите мой сценарий миграции и модель, возможно, это может вам помочь.

Модель

class Model_Test extends \Orm\Model 
{ 
    protected static $_properties = array(
     'id', 
     'whatever', 
    ); 

    protected static $_table_name = 'tests'; 

} 

миграция сценарий

построен из существующей таблицы с помощью команды: масло Усовершенственного fromdb: тест Модели

namespace Fuel\Migrations; 

class Create_tests 
{ 
    public function up() 
    { 
     \DBUtil::create_table('tests', array(
      'id' => array('constraint' => 11, 'type' => 'int', 'auto_increment' => true, 'unsigned' => true), 
      'whatever' => array('type' => 'bit'), 

     ), array('id')); 
    } 

    public function down() 
    { 
     \DBUtil::drop_table('tests'); 
    } 
} 

В контроллере, вам нужно будет значение как INT

$f = Input::post('whatever_post_field'); 

$o = Model_Test::forge(array('whatever' => (int)$f)); 
$o->save(); 
+1

Вы правы, сценарий миграции был правильно сгенерирован с использованием поля 'бит'. Однако, когда я использую представление (сгенерированное «нефтью») для создания новой записи, и я ввожу «1» или «0» в текстовое поле для поля бит, Fuel сообщает мне, что введенный мной ввод слишком длинный. Я предполагаю, что он пытается вставить его в виде строки? – n0pe

+1

yep, Fuel интерпретирует значение как строку. Вам нужно указать поле, чтобы сохранить его как целое. – Gadonski

+1

В качестве альтернативы, определите правильный тип данных в свойствах моделей и используйте наблюдателя ввода на before_save, чтобы убедиться, что это int перед его сохранением. – WanWizard

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