2017-02-14 77 views
1

如何设置场景从Yii2如何设置场景中加入查询对象在Yii2

加入查询

创建的对象我的查询是

$model = Answers::find() 
      ->joinWith('question') 
      ->where(['request_id' => $Request->id])->all(); 

我得到的模型对象数据。现在,当我尝试情景设置为此对象

$model->scenario = 'get_answer'; 

它给错误“PHP的警告 - 警予\基地\ ErrorException

尝试给非对象的财产”

如何设置场景到这个对象。

+0

大概'回答:: find()方法...->回答所有的()'返回数组。在这个动作之后,你的'$ model'是数组; 是的,你不能分配属性数组。 请解释我们请你用这个答案想要什么。 –

+0

@BukharovSergey是的,我得到$ model变量中的对象数组。现在我想为这些对象分配场景'get_answer' –

回答

1

Answers::find()...->all()返回array答案。在这个动作之后,你的$模型是数组;

是的,你不能分配属性数组。请解释我们,你想用这个答案想要什么。

你的代码必须是这样的:

$answers = Answers::find() 
     ->joinWith('question') 
     ->where(['request_id' => $Request->id])->all(); 

foreach ($answers as $answer) { 
    $answer->scenario = 'get_answer'; 
}