我是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();
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行页面/函数时,我收到错误:
PHP警告
非法字符串偏移'name'
$ store-> name = $ data ['name'].$ num;
谁能告诉我这里我做错了什么?
你得到这个,因为在你的foreach中,名字不是抵消.
要解决这个问题:
$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"),
];
Run Code Online (Sandbox Code Playgroud)
每个单独的行必须是一个数组foreach($dataArray as $data ),$data如果是数组,而不是结果.
希望能帮助到你!
继续编码!
战神.