这是一个数组:
Array
(
[0] => Array
(
[ID] => 74
[coupon] => fCHzP
)
[1] => Array
(
[ID] => 74
[coupon] => WKHaY
)
)
等
这是每次动态生成这个数组的代码(通过给定的计数器),然后保存到db表中:
for($i=0;$i < $this->counter;$i++){
$query_params[ ] = array('ID' => $this->ID , 'coupon' => make_random());
}
self::insert($query_params);
Ι试着写一个代码,使多维数组与SplFixedArray,但我不能!
我已经尝试了这个代码(在循环之前),但是不起作用:
$query_params = new SplFixedArray($this->counter);
谢谢!
这里的问题是$query_params[] = ...;
不与SplFixedArray
工作。当您执行$query_params[] = ...;
时,您在最后一个元素之后添加一个元素。
对于SplFixedArray
, count()
总是返回"固定"大小,所以当你push时,你试图在范围之外添加一个元素。
试试这个:
$query_params = new SplFixedArray($this->counter);
for($i=0; $i < $this->counter; $i++){
$query_params[$query_params->key()] = array('ID' => $this->ID , 'coupon' => make_random());
$query_params->next();
}
或者更好:
$query_params = new SplFixedArray($this->counter);
for($i=0; $i < $this->counter; $i++){
$query_params[$i] = array('ID' => $this->ID , 'coupon' => make_random());
}
你创建数组的方式是好的,如果你的数据库服务器接受这些行,Laravel将接受它,但是看看你的代码,我看到一些奇怪的事情:
self::insert($query_params);
告诉我这是一个Eloquent模型,还是我错了?
$this->counter
这个模型上有一个计数器,所以这不是一个干净的模型…
array('ID' => $this->ID , 'coupon' => make_random());
您试图一次又一次地self::insert
ID ?你的桌子可以吗?