我确信模型中的设置主键正在工作,因为我使用了Find()
依赖于设置主键的模型函数并且它提供了正确的数据。
当像这样创建一个新的代码时,问题就出现了:
$new = new Book();
$new->title = 'pogi';
$new->save();
它会生成此错误:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '' for key 'PRIMARY' (SQL: insert into `books` (`title`, `updated_at`, `created_at`) values (?, ?, ?)) (Bindings: array ( 0 => 'pogi', 1 => '2013-10-09 02:18:53', 2 => '2013-10-09 02:18:53', ))
模型:
class Book extends Eloquent {
protected $table = 'books';
public $primaryKey = 'book_id';
}
PS:我不知道这是否会有所帮助,但我运行了这个 sql 代码来改变事情:
ALTER TABLE books
CHANGE link ibooks_url varchar(255),
ADD COLUMN kindle_url varchar(255),
ADD COLUMN kobo_url varchar(255),
ADD COLUMN ibooks_id varchar(255),
CHANGE book_id kindle_id varchar(255),
ADD COLUMN kobo_id varchar(255),
ADD COLUMN ibooks_id varchar(255),
CHANGE id book_id varchar(255);