2015-10-12 2 views
0

я пытаюсь создать новый пользователь, используя следующий код:Laravel 5: добавление нового пользователя не работает, как ожидалось

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

) 
$user->save($arr); 

это добавить запись в таблицу, но все поля пусты - ни малейшего представление что не так? спасибо

+0

Можете ли вы показать название столбца таблицы? – sixFingersMan

ответ

0

Это не то, как работает функция сохранения! Вы должны еще раз взглянуть на Laravel docs on Eloquent.

Статический метод User :: create(), конструктор класса и метод обновления все принимают в качестве входных данных массивы, но метод сохранения не работает.

Вы можете сделать:

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

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

Убедившись, что имя пользователя и передать столбцы массовые переуступки (существует в защищенном массиве $ нефтеналивного в модели).

Вы не собираетесь вводить пароль пользователя в виде простого текста, не так ли?

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();