假设我有以下 MySQL 表:
CREATE TABLE backend_users(
id INT NOT NULL AUTO_INCREMENT,
userName VARCHAR(30) UNIQUE NOT NULL,
password VARCHAR(40) NOT NULL,
salt VARCHAR(16) NOT NULL,
needsNewPassword TINYINT(1) UNSIGNED NOT NULL,
forgotPasswordKey VARCHAR(8) NULL,
fullName VARCHAR(50) NOT NULL,
email VARCHAR(255) NOT NULL,
roleType INT NOT NULL,
enabled TINYINT(1) UNSIGNED NOT NULL,
created_at DATETIME NOT NULL,
updated_at DATETIME NOT NULL,
PRIMARY KEY (id)
) CHARACTER SET utf8 COLLATE utf8_general_ci;
如何使用 Eloquent 模型使用上面的列名将新行记录到表中?如果我按照文档中的说明尝试:
$user = User::create(
array(
'userName' => 'emmanuel',
'password' => $encryptedPassword,
'salt' => $salt,
'needsNewPassword' => 0,
'fullName' => 'Emmanuel Figuerola',
'email' => 'somemail@gmail.com',
'roleType' => 0,
'enabled' => 1
)
);
我收到以下错误:
例外:SQLSTATE [42S22]:未找到列:1054 '字段列表'中的未知列 'user_name'(SQL:插入
backend_users
(user_name
,password
,salt
,needs_new_password
,full_name
,role_type
,enabled
,updated_at
,created_at
) 值 (?, ?, ?, ?, ?, ?,?,?,?,? 5 => 'somemail@gmail.com', 6 => 0, 7 => 1, 8 => DateTime::__set_state(array('date' => '2013-02-26 00:20:03', ' timezone_type' => 3, 'timezone' => 'UTC', )), 9 => DateTime::__set_state(array( 'date' => '2013-02-26 00:20:03', 'timezone_type' => 3, 'timezone' => 'UTC', )), ))
如果您不想阅读所有这些内容,这仅意味着 Eloquent 正在使用它想要的任何列名,而不是我的列名,即使我明确指定了每个列的名称和值。
我该怎么办?如果可能,请不要说“重命名列”,因为这意味着重命名很多列(我有很多表)。此外,我没有阅读任何关于列名的特定命名约定的信息。