0

次のコードを使用して新しいユーザーを作成しようとしています:

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

)
$user->save($arr);

レコードをテーブルに追加しますが、すべてのフィールドが空です - 何が問題なのですか? ありがとう

4

2 に答える 2

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();
于 2015-10-12T16:11:18.750 に答える
0

それは保存機能がどのように機能するかではありません! Eloquentの Laravel ドキュメントをもう一度見てください。

User::create() 静的メソッド、クラス コンストラクター、および update メソッドはすべて配列を入力として受け取りますが、save メソッドは受け取りません。

あなたがすることができます:

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

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

ユーザー名とパスの列が一括割り当て可能であることを確認します (モデルの保護された $fillable 配列に存在します)。

ユーザーのパスワードを平文で保存するつもりはありませんよね?

于 2015-10-12T14:49:40.753 に答える