Laravel 5.4 elequent create方法生成错误查询

时间:2018-09-25 11:16:36

标签: laravel

我正在尝试使用雄辩的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_resetsupdated_atcreated_at)值(2018- 09-25 16:16:45,2018-09-25 16:16:45))

为什么上述错误查询中没有“电子邮件”和“令牌”字段?

4 个答案:

答案 0 :(得分:0)

我认为您应该这样创建

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

答案 1 :(得分:0)

尝试这种方式:

$passwordReset = new PasswordReset();

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

$passwordReset->token = '12345';

$passwordReset->save();

答案 2 :(得分:0)

来自您的评论:

  

@cbaconnier,谢谢,查看您的评论后。我已经检查了我的代码及其__construct方法,但其中没有任何代码,并删除了此代码,从而解决了问题。

如果您想在City.find(@street.city_id)上使用__construct(),则需要像这样构建它

Model

答案 3 :(得分:-1)

尝试这个,希望为您工作:

matrix=[]
for i in range(0,6):
    matrix.append(0)  

x = 1
counting = 1

print matrix
while True:
    if (x >= 1023):
        counting = -1
    matrix[0]=x&0xFF
    x += counting

    if (x >= 256):
        matrix[0] = 255
        matrix[1] = x&0xFF
    if (x >= 512):
        matrix[1] = 255
        matrix[2] = x&0xFF
    if (x >= 768):
        matrix[2] = 255
        matrix[3] = x&0xFF
    if (x == -1):
        counting = 1
    print matrix