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