为什么我在Yii中收到"非法字符串偏移'名称'"错误?

Ste*_*ven 1 php yii

我是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;

谁能告诉我这里我做错了什么?

Are*_*una 5

你得到这个,因为在你的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如果是数组,而不是结果.

希望能帮助到你!
继续编码!
战神.