Yii2 framework learning 4-1 modelSearch class learning búsqueda personalizada, consulta asociada

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 ; 
    } 
}

 

Supongo que te gusta

Origin www.cnblogs.com/gaogaoxingxing/p/12729587.html
Recomendado
Clasificación