Php 拉威尔雄辩

Php 拉威尔雄辩,php,laravel,Php,Laravel,当我尝试使用model方法create填充数据库时,如下所示: public function registerDevice($command) { $deviceId = $command->deviceId; $deviceToken = $command->deviceToken; $this->deviceId = $deviceId; $this->deviceToken = $deviceToken; Device:

当我尝试使用model方法
create
填充数据库时,如下所示:

public function registerDevice($command) {
    $deviceId = $command->deviceId;
    $deviceToken = $command->deviceToken;

    $this->deviceId = $deviceId;
    $this->deviceToken = $deviceToken;

    Device::create(array('device_id' => $deviceId, 'device_token' => $deviceToken));
    $this->raise(new DeviceWasRegistered($this));
    return $this;
}
正在创建条目,但仅更新时间戳。值字段为空。没有出现任何错误或其他故障。但是如果我变量转储,我想输入db的值就在那里


我遗漏了什么吗?

为了让create方法工作,您需要将两个字段放在模型的
$filleble
数组中。因此,请确保您的模型中包含以下内容:

protected $fillable = [
    'device_id',
    'device_token',
];

您可以阅读更多关于
创建
方法和质量分配的信息。

您可以展示模型吗?您可能没有填写
protected$filleble
Haaaaaaaaa!!我在里面有deviceId和deviceToken!!不,它工作得很好!我不确定,但可填充属性不是决定了哪些属性被分配了质量吗?他正在手动分配它们,所以这应该不是问题。如果他正在做
Device::create($request->input())
并且他在可填充的字段中缺少字段,那么它就不起作用了——或者我错了?@Krenor nope,请重新阅读代码。他在控制器中执行
$this->deviceId
$this->deviceToken
,然后通过一个数组传递给
create
方法,从而进行批量分配。@phrogy是的,你是对的。我还以为MA代表的是
Input/Request::all()
,而不是create!编辑:为了澄清问题,是的,我的意思是在使用
create()
fill()
@Krenor
Request::all()
时使用
all()
方法只是返回一个数组,因此与批量分配无关。Laravel中的质量指定是在对象构造上通过数组时,或在使用
创建
更新
或显式使用
填充
方法时。