我是Yii的新手,正在尝试插入一些示例数据。
在我的/model/Store.php文件中,我有以下代码:
class Store extends CActiveRecord {
public function rules()
{
return array(
array('name, status', 'required'),
(...)
public function attributeLabels()
{
return array(
'name' => 'Name',
(...)
public function insertSampleData(){
$dataArray = [
"name" => "Test store ", "fk_adr" => "4117",
"name" => "Test store ", "fk_adr" => "4126",
"name" => "Test store ", "fk_adr" => "4140",
"name" => "Test store ", "fk_adr" => "4150",
"name" => "Test store ", "fk_adr" => "4167",
];
$num = Yii::app()->db->getLastInsertID();
foreach($dataArray as $data ){
$num++;
$store = new self;
$store->name = $data['name'].$num;
$store->fk_addressID = $data['fk_adr'];
$store->save();
}
}
当我运行页面/功能时,我得到错误:
PHP警告
非法的字符串偏移量"name"
$store->name=$data['name']$num
有人能告诉我我在这里做错了什么吗?
之所以会出现这种情况,是因为在foreach中,name不是偏移量。
要解决此问题:
$dataArray = [
0 => array("name" => "Test store ", "fk_adr" => "4117"),
1 => array("name" => "Test store ", "fk_adr" => "4126"),
2 => array("name" => "Test store ", "fk_adr" => "4140"),
3 => array("name" => "Test store ", "fk_adr" => "4150"),
4 => array("name" => "Test store ", "fk_adr" => "4167"),
];
每个单独的行必须是一个数组,因此foreach($dataArray as $data )
、$data
将是一个阵列,而不是结果。
希望它能有所帮助
继续编码
阿瑞斯。