Heim >Backend-Entwicklung >PHP-Tutorial >Implementierungsmethode für ein YII-bezogenes Feld mit Such- und Sortierfunktion
Es ist fast zwei Monate her, seit ich mit dem YII-Framework in Berührung gekommen bin, aber mein Verständnis des YII-Frameworks ist nicht sehr tiefgreifend, ich mache es nur Wenn ich an einem Projekt arbeite, greife ich nur dann auf das Handbuch zurück, wenn ich auf etwas stoße, das ich nicht verstehe.
Im vorherigen Projekt war es notwendig, die Felder der zugehörigen Tabellen anzuzeigen und Such- und Sortierfunktionen bereitzustellen. Dies war mir vorher noch nicht begegnet, also habe ich im Handbuch nach relevanten Informationen gesucht und diese aufgeschrieben Anforderung, und habe mir ein paar Notizen zu Youdao Cloud gemacht. Heute ist Wochenende und ich werde es in einem Blog organisieren, wenn ich Zeit habe.
Kommen wir ohne weitere Umschweife direkt zu den Schritten.
Hintergrund: Fügen Sie hier Zuordnungstabellenfelder zur von GII automatisch generierten CURL hinzu.
Anforderung: Es gibt ein Feld pt_id in Tabelle A, das mit Tabelle B verknüpft ist. Jetzt muss der Namenswert des mit Tabelle B verknüpften Felds basierend auf der auf GII von Tabelle A generierten CURL hinzugefügt werden eine Such- und Sortierfunktion.
1 //意思即获取Pt的数据 2 public function getPt() //get** get后面任意 3 { 4 //模型名:className(),B表字段=>A表对应字段 5 return $this->hasOne(Pt::className(), ['id' => 'ptid']); 6 }
1 public $name; //可以关联显示多个字段 2 public $*****; //例子
2.3. Ändern Sie die Suchfunktion in A. Suche
1 //search函数中添加 表示在SQL语句中增加关联查询 2 //看起来是那么的熟悉,哈哈 3 $query->joinWith(['pt']); //这里等待pt中的值就是step1中get后面的命名
1 //这里存放的是可以排序的字段 2 //如果A Search已经存在setSort,则其他动,只需要添加新的字段就可以了 3 //但是,我的yii 2生成的Search不存在这个排序,因此就需要额外添加了 4 //注意:当你的search中不存在这个配置时,即表明默认配置里面有设置过,当你在这里添加一个setSort则将会覆盖默认配置,之前默认有排序功能的字段将会失效 5 $dataProvider->setSort( 6 'attributes'=>[ 7 //====添加新字段排序配置= 8 'name'=>[ 9 'asc'=>['name' => SORT_ASC], 10 'desc'=>['name' => SORT_DESC], 11 'lable'=>'name', 12 ], 13 //================== 14 ] 15 );
1 //在代码里面照着队形添加这一句即可 2 //like,关联表全名,this->name 3 $query->andFilterWhere(['like', '**_pt.name', $this->name]) ;
1 'columns' => [ 2 //=========== 3 //添加 4 [ 5 'attribute' => 'name', 6 'label' => '平台', 7 'value' => 'pt.name', 8 'filter' => Html::activeTextInput($searchModel, 'name', [ 9 'class' => 'form-control' 10 ]), 11 ], 12 //============= 13 ]
ist zu diesem Zeitpunkt mehr als zur Hälfte fertig. Wenn Sie auf diesen Controller zugreifen, können Sie den Seiteneffekt bereits sehen, aber er ist tatsächlich vorhanden true bei der Suche. Ungültig, warum?
Da die Feldinformationen, die Sie zu diesem Zeitpunkt übermittelt haben, unsicher sind und nicht im Programm aufgezeichnet werden.
1 //在A Search中的设置规则方法中添加 2 //name字段为safe 3 [['name'], safe]
Fertig! !
Anhand dieses Beispiels erfahren Sie, wie Sie verwandte Felder in Yii hinzufügen und dann basierend auf Ihren vorhandenen Kenntnissen weitere Änderungen vornehmen können herauskommen. . . .
Das obige ist der detaillierte Inhalt vonImplementierungsmethode für ein YII-bezogenes Feld mit Such- und Sortierfunktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!