0

我正在尝试使用以下代码创建一个新用户:

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

)
$user->save($arr);

它确实将记录添加到表中,但所有字段都是空的 - 知道有什么问题吗?谢谢

4

2 回答 2

0

保存功能不是这样工作的!你应该再看看Eloquent 上的 Laravel 文档。

User::create() 静态方法、类构造函数和更新方法都将数组作为输入,但保存方法不这样做。

你可以这样做:

$arr = array(
    "username" => Input::get('username'),
    "pass" => Input::get('pass')
)

$user = new User($arr);
$user->save();

确保 username 和 pass 列是可批量分配的(存在于模型的受保护 $fillable 数组中)。

您不会以纯文本形式存储用户密码,对吧?

于 2015-10-12T14:49:40.753 回答
0

如果您使用:

$user = new User([
    "username" => Input::get('username'),
    "pass" => Input::get('pass')
]);
$user->save();

或者

User::create([
    "username" => Input::get('username'),
    "pass" => Input::get('pass')
]);

和字段必须是可批量分配的,usernamehttp : //laravel.com/docs/5.1/eloquent#mass-assignmentpass

否则,您应该执行以下操作:

$user = new User;
$user->username = Input::get('username');
$user->pass = bcrypt(Input::get('pass'));
$user->save();
于 2015-10-12T16:11:18.750 回答