2016-07-15 10:14:46 3008次浏览 2条回答 0 悬赏 15 金钱
PHP Fatal Error – yii\base\ErrorException

Call to a member function hasMany() on a non-object

这个报错怎么解决,它报我的hasMany没有对象

public function actionIndex()
{
    $customer=Customer::find()->where(['name'=>'张三'])->asArray()->one();
    $order=$customer->hasMany('app\models\Order',['customer_id'=>'id'])->all();
    print_r($order);
    exit;
}

这个是控制器的方法,我还换过Model层的,但是依然不可用
求大神解决

  • 回答于 2016-07-15 10:29 举报

    hasMany是定义数据关系用的,不是查询的时候指定的
    是在Model定义好,查询的时候用joinWith()
    比如Customer中定义

    public function getOrders() {
        return $this->hasMany('app\models\Order', ['customer_id'=>'id']);
    }
    

    查询的时候

    $customer = Customer::find()->where(...)->one();
    $orders = $customer->orders; // 或者 $orders = $customer->getOrders()->all();
    
  • 回答于 2016-07-15 13:27 举报

    asArray返回的是一个数组不是object,当然会提示 on a non-object

    , 觉得很赞
您需要登录后才可以回答。登录 | 立即注册
37498
等待激活

37498

注册时间:2016-10-31
最后登录:1970-01-01
在线时长:0小时0分
  • 粉丝0
  • 金钱30
  • 威望0
  • 积分30

热门问题