为什么我在 Yii 中出现"Illegal string offset 'name'"错误?



我是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将是一个阵列,而不是结果。

希望它能有所帮助
继续编码
阿瑞斯。

相关内容

最新更新