我要覆盖 ActiveQuery 模型 AdmVeculosSolictacoes。 我创建了这个新方法 fechadas(),但是当我调用它时,出现错误“调用未知方法:yii\db\ActiveQuery::fechadas()”。
怎么了?
AdmVeculosSolicitacoesQuery.php
namespace app\models;
/**
* This is the ActiveQuery class for [[AdmVeiculosSolicitacoes]].
*
* @see AdmVeiculosSolicitacoes
*/
class AdmVeiculosSolicitacoesQuery extends \yii\db\ActiveQuery
{
/*public function active()
{
return $this->andWhere('[[status]]=1');
}*/
/**
* {@inheritdoc}
* @return AdmVeiculosSolicitacoes[]|array
*/
public function all($db = null)
{
return parent::all($db);
}
/**
* {@inheritdoc}
* @return AdmVeiculosSolicitacoes|array|null
*/
public function one($db = null)
{
return parent::one($db);
}
public function fechadas()
{
return $this->andWhere(['or',['aprovado' => 0], ['devolvido' => 1]]);
}
}
AdmVeculosSolicitacoes.php
public function getKmInicial()
{
$kmFinal_ultimaFechada = AdmVeiculosSolicitacoes::find('km_final')
->where(['id_veiculo' => $this->id_veiculo])
->fechadas()
->orderBy(['devolucao_confirmada_em' => SORT_DESC])
->one();
if ($kmFinal_ultimaFechada === null) {
$veiculo = AdmVeiculos::findOne($this->id_veiculo);
return $veiculo !== null ? $veiculo->km_atual : null;
}
else return $kmFinal_ultimaFechada['km_final'];
}
答案 0 :(得分:1)
您是否更新了 AdmVeiculosSolicitacoes
类以使用新的 Query
?
https://www.yiiframework.com/doc/guide/2.0/en/db-active-record#customizing-query-classes
class AdmVeiculosSolicitacoes extends ActiveRecord
{
public static function find()
{
return new AdmVeiculosSolicitacoesQuery(get_called_class());
}
}