1. Proveedor de datos, como el utilizado en la clase modelsearch
<? php namespace common \ models; usar Yii; use yii \ base \ Model; use yii \ data \ ActiveDataProvider; use common \ models \ Post; / * * * PostSearch representa el modelo detrás del formulario de búsqueda sobre `common \ models \ Post`. * / class PostSearch extiende Post { // 增加 数据 的 字段 属性 atributos de función pública () { return array_merge (parent :: attribute (), ['author_name' ]); } / * * * @inheritdoc * / public reglas de función () { return [ [[ 'id', 'status', 'create_time', 'update_time', 'author_id'], 'integer'], [[ 'title', 'content', 'tags', ' nombre_autor '],' seguro '], ]; } / * * * @inheritdoc * / public function scenarios () { // omitir la implementación de escenarios () en la clase padre return Model :: scenarios (); * @return ActiveDataProvider * / public function search ( $ params ) { $ query = Post :: find (); // agrega condiciones que siempre deberían aplicarse aquí $ dataProvider = new ActiveDataProvider ([ 'query' => $ query , 'pagination' => [ 'pageSize' => 10, ] ]); $ this -> load ( $ params ); if (! $ this -> validate ()) { //descomente la siguiente línea si no desea devolver ningún registro cuando la validación falla // $ query-> where ('0 = 1'); return $ dataProvider ; } // condiciones de filtrado de la cuadrícula $ query -> andFilterWhere ([ 'id' => $ this -> id, 'status' => $ this -> status, 'create_time' => $ this -> create_time, 'update_time' = > $ this -> update_time, 'author_id' => $ this -> author_id, ]); $ this- > title]) -> andFilterWhere (['like', 'content', $ this- > content]) -> andFilterWhere (['like', 'tags', $ this- > tags]); // añadir encargo consulta $ consulta -> el Join ( 'la INTERNO la unión', 'para adminuser', 'post.author_id adminuser.id =' ); $ consulta -> andFilterWhere ([ 'como', 'adminuser.nickname', $ el presente - > AUTHOR_NAME]); // aumento de la costumbre campo de índice $ dataProvider -> Ordenar -> Atributos [ 'AUTHOR_NAME'] = [ 'asc '=> [' adminuser.nickname '=> SORT_ASC], 'desc' => ['adminuser.nickname' => SORT_DESC], ]; return $ dataProvider ; } }