Php 拉威尔雄辩
当我尝试使用model方法Php 拉威尔雄辩,php,laravel,Php,Laravel,当我尝试使用model方法create填充数据库时,如下所示: public function registerDevice($command) { $deviceId = $command->deviceId; $deviceToken = $command->deviceToken; $this->deviceId = $deviceId; $this->deviceToken = $deviceToken; Device:
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()
@KrenorRequest::all()
时使用all()
方法只是返回一个数组,因此与批量分配无关。Laravel中的质量指定是在对象构造上通过数组时,或在使用创建
或更新
或显式使用填充
方法时。