【问题标题】:"Trying to get property of non-object" With relations Yii2“试图获得非对象的属性”与关系 Yii2
【发布时间】:2017-05-11 15:17:58
【问题描述】:

我有这个错误“试图获取非对象的属性”与 Yii2 中的关系(两个表)

$modelSK = SarparastKhanevar::find()->with('tahtTakafols')->where(['code' => $skCode])->all();

在这个 print_r($modelSK) 我有两个表的结果,但我在 print_r($modelSK->tahtTakafols) 中有错误

Array
(
    [0] => app\models\SarparastKhanevar Object
        (
            [_attributes:yii\db\BaseActiveRecord:private] => Array
                (
                    [id] => 2
                    [code] => 1493708638
                    [s_id] => 1
                    [u_id] => 6
                )

            [_oldAttributes:yii\db\BaseActiveRecord:private] => Array
                (
                    [id] => 2
                    [code] => 1493708638
                    [s_id] => 1
                    [u_id] => 6
                )

            [_related:yii\db\BaseActiveRecord:private] => Array
                (
                    [tahtTakafols] => Array
                        (
                            [0] => app\models\TahtTakafol Object
                                (
                                    [_attributes:yii\db\BaseActiveRecord:private] => Array
                                        (
                                            [id] => 4
                                            [sk_id] => 2
                                            [code] => 1493728441
                                        )

                                    [_oldAttributes:yii\db\BaseActiveRecord:private] => Array
                                        (
                                            [id] => 4
                                            [sk_id] => 2
                                            [code] => 1493728441
                                        )

                                    [_related:yii\db\BaseActiveRecord:private] => Array
                                        (
                                        )

                                    [_errors:yii\base\Model:private] => 
                                    [_validators:yii\base\Model:private] => 
                                    [_scenario:yii\base\Model:private] => default
                                    [_events:yii\base\Component:private] => Array
                                        (
                                        )

                                    [_behaviors:yii\base\Component:private] => Array
                                        (
                                        )

                                )

                            [1] => app\models\TahtTakafol Object
                                (
                                    [_attributes:yii\db\BaseActiveRecord:private] => Array
                                        (
                                            [id] => 5
                                            [sk_id] => 2
                                            [code] => 1493728450
                                        )

                                    [_oldAttributes:yii\db\BaseActiveRecord:private] => Array
                                        (
                                            [id] => 5
                                            [sk_id] => 2
                                            [code] => 1493728450
                                        )

                                    [_related:yii\db\BaseActiveRecord:private] => Array
                                        (
                                        )

                                    [_errors:yii\base\Model:private] => 
                                    [_validators:yii\base\Model:private] => 
                                    [_scenario:yii\base\Model:private] => default
                                    [_events:yii\base\Component:private] => Array
                                        (
                                        )

                                    [_behaviors:yii\base\Component:private] => Array
                                        (
                                        )

                                )

                        )

                )

            [_errors:yii\base\Model:private] => 
            [_validators:yii\base\Model:private] => 
            [_scenario:yii\base\Model:private] => default
            [_events:yii\base\Component:private] => Array
                (
                )

            [_behaviors:yii\base\Component:private] => Array
                (
                )

        )

)

在 Foreach 中回显结果:

                $i = 0;
                foreach($modelSK as $model)
                {
                    $list[$i]['id'] = $model->id;
                    $list[$i]['code'] = $model->code;
                    $list[$i]['s_id'] = $model->s_id;
                    $list[$i]['u_id'] = $model->u_id;

                    $j = 0;
                    foreach($modelSK->tahtTakafols as $modelTt)
                    {
                        $list[$i][$j]['id'] = $modelTt->id;
                        $list[$i][$j]['sk_id'] = $modelTt->sk_id;
                        $list[$i][$j]['code'] = $modelTt->code;
                        $j++;
                    }
                    $i++;
                }

【问题讨论】:

    标签: php activerecord yii foreach yii2


    【解决方案1】:

    问题出在这里:

    $modelSK->tahtTakafols
    

    你不能像这样访问它,因为这是一个Array of Object。您在两个不同的循环中使用 $model 变量。外循环没问题,但在里面

    foreach($modelSK->tahtTakafols as $model)
    

    这条线有问题。

    【讨论】:

    • 我改变了我的 foreach 但我有错误。请检查第一篇文章我更改了我的代码
    • 更改后的代码中仍有foreach($modelSK->tahtTakafols as $modelTt)
    【解决方案2】:

    $model->tahtTakafols 不是$modelSK->tahtTakafols

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-09
      相关资源
      最近更新 更多