laravel 5:添加新用户未按预期工作

时间:2015-10-12 14:35:58

标签: laravel-5 createuser

我尝试使用以下代码创建新用户:

$user = new User();
$arr = array(
    "username" => Input::get('username'),
    "pass" => Input::get('pass')

)
$user->save($arr);

它确实将记录添加到表中但所有字段都是空的 - 任何想法是什么错? 感谢

2 个答案:

答案 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')
]);

usernamepass字段必须是可批量分配的,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();