Предположим, у меня есть следующая таблица 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' => '[email protected]',
'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
) (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)) (Привязки: массив ( 0 => 'emmanuel', 1 => '70b104a42c4ac5e79ca7c150bf872b383e0eedca', 2 => '5514512bffb33f4a', 3 = > 0, 4 => 'Эммануэль Фигуэрола', 5 => '[email protected]', 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 использует любые имена столбцов, которые он хочет, а не имена МОИХ столбцов, даже когда я четко указал имя и значение для каждого из них.
Что я должен делать? Если возможно, не говорите «переименуйте столбцы», потому что это будет означать переименование МНОЖЕСТВА КОЛОНН (у меня много таблиц). Кроме того, я нигде не читал о конкретном соглашении об именах столбцов.