2016-04-12 4 views
0

Я не могу вставить новую строку в таблицу и получаю ошибкуНевозможно вставить новую строку в CakePHP 3.0

2016-04-12 09:23:54 Error: [RuntimeException] Cannot insert row in "table_name" table, it has no primary key. Request URL:

Я использую ОРМ и мой код, указанный ниже

$entityTable = TableRegistry::get('TableName'); 
$entity = $entityTable->newEntity(); 
$entity->name = 'Test Name'; 
$entity->image = 'test.png'; 
$entity->type = 1; 
if($entityTable->save($entity)) { 
    $this->Flash->success('Added successfully.'); 
} else { 
    $this->Flash->error('Error!.'); 
} 

И мой стол

CREATE TABLE `table_name` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL, 
    `image` text COLLATE utf8_unicode_ci NOT NULL, 
    `type` int(1) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1; 
+1

добавить $ this-> primaryKey ('id'); in src >> Model >> Table >> TableNamesTable ... в вашем методе инициализации – prats1411

+0

Теперь он работает отлично. Спасибо @ prats1411 –

+0

aaah .. ответ уже опубликован, он был потерян на одной из вкладок .. рад, что он работает, пожалуйста, отметьте его как правильно :) спасибо! – prats1411

ответ

2

добавить $this->primaryKey('id');

in src >> Model >> Table >> TableNamesTable ... в вашем методе инициализации

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