Laravel 5.4 elequent create метод генерирует неправильный запрос - PullRequest
0 голосов
/ 25 сентября 2018

Я пытаюсь вставить данные в таблицу, используя красноречивый метод create, но данные, которые я передал, не поступают в запросе вставки, созданном методом create.Из-за чего я получаю ошибку по умолчанию.
Ниже приведен код, который я использовал

Модель:

namespace App;

use Illuminate\Database\Eloquent\Model;

class PasswordReset extends Model
{
    protected $fillable = ['email', 'token'];
}

Контроллер:

$content = ['email'=>'test@gmail.com', 'token'=>'1234'];
PasswordReset::create($content);

Ошибка, которую я получаю:

SQLSTATE [HY000]: общая ошибка: 1364 Поле 'email' не имеет значения по умолчанию (SQL: вставить в password_resets (updated_at, created_at) значения (2018-09-25 16:16:45, 2018-09-25 16:16:45))

Почему запрос в приведенной выше ошибке не имеет полей 'email' и 'token'?

Ответы [ 4 ]

0 голосов
/ 25 сентября 2018

от вашего комментария:

@ cbaconnier, спасибо, после просмотра вашего комментария.Я проверил мой код и у него есть метод __construct без какого-либо кода внутри него, и я решил удалить эту проблему.

Если вы хотите использовать __construct() на Model, вам нужнопостроить это так

public function __construct(array $attributes = [])
{
    parent::__construct($attributes);
    // your code
}
0 голосов
/ 25 сентября 2018

Я думаю, вы должны создать так

PasswordReset::create([
  'email'=>'test@gmail.com',
  'token' => '1234'
]);
0 голосов
/ 25 сентября 2018

попробуйте так:

$passwordReset = new PasswordReset();

$passwordReset->email = 'test@gmail.com';

$passwordReset->token = '12345';

$passwordReset->save();
0 голосов
/ 25 сентября 2018

попробуйте это, я надеюсь, что работа для вас:

    PasswordReset::create([
'email'=>'test@gmail.com',
'token' => '1234']);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...