我尝试使用以下代码创建新用户:
$user = new User();
$arr = array(
"username" => Input::get('username'),
"pass" => Input::get('pass')
)
$user->save($arr);
它确实将记录添加到表中但所有字段都是空的 - 任何想法是什么错? 感谢
答案 0 :(得分:0)
这不是保存功能的工作方式!您应该再看一下Laravel docs on Eloquent。
User :: create()静态方法,类构造函数和更新方法都将数组作为输入,但save方法没有。
你可以这样做:
$arr = array(
"username" => Input::get('username'),
"pass" => Input::get('pass')
)
$user = new User($arr);
$user->save();
确保用户名和密码列是可批量分配的(存在于模型的受保护的$ fillable数组中)。
您不打算以纯文本格式存储用户密码,对吧?
答案 1 :(得分:0)
如果您使用:
$user = new User([
"username" => Input::get('username'),
"pass" => Input::get('pass')
]);
$user->save();
或
User::create([
"username" => Input::get('username'),
"pass" => Input::get('pass')
]);
username
和pass
字段必须是可批量分配的,http://laravel.com/docs/5.1/eloquent#mass-assignment
否则,您应该执行以下操作:
$user = new User;
$user->username = Input::get('username');
$user->pass = bcrypt(Input::get('pass'));
$user->save();