es posible incluir filtros de busqueda cuando usamos SqlDataProvider ?

es posible incluirlo de alguna forma ?

si tengo esto:


$sql =  "SELECT* 


FROM

				`orders` O

			LEFT JOIN `shipping` S ON S.id_shipping_state = O.id_current_state

			LEFT JOIN `cart` ON cart.id_cart = O.id_cart 

			LEFT JOIN `cart_detail` CD on CD.id_cart = cart.id_cart

";

y luego un


$dataProvider = new SqlDataProvider([

            'sql' => $sql,

            'totalCount' => $count,

        ]);

        $this->load($params);

puedo hacer de alguna forma :


$query->andFilterWhere(['like', 'id_current_state', $this->address_nickname])

            ->andFilterWhere(['like', 'id_cart', $this->firstname])



??

es decir a la sentencia RAW , de SQL le puedo agregar filtros ?

@apositivo

Pudieras intentar usando Query Builder y en vez de traer los datos directamente, construye la query dinamicamente usando andFilterWhere()

Ejemplo:
$query = (new \yii\db\Query())
->select(‘Tus columnas’)
->from(‘Tus tablas’)
->andFilterWhere([‘Campo’ => ‘Valor’])
->createCommand();
$query->sql;

$dataProvider = new SqlDataProvider([
            'sql' => $query,
            'pagination' => [
                'pageSize' => 20,
            ],
        ]);