Ich versuche, einige Daten über Kartik GridView
Widget in yii2
mithilfe von Beziehungen aufzulisten. Ich habe diese TabellenJOIN multiple Tabelle mit Beziehungen in Yii2
staffs
CREATE TABLE IF NOT EXISTS `staffs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(250) CHARACTER SET utf8 DEFAULT NULL,
`department_id` int(11) DEFAULT NULL,
`designation_id` int(11) DEFAULT NULL,
`username` varchar(50) CHARACTER SET utf8 DEFAULT NULL,
`emailid` varchar(250) CHARACTER SET utf8 DEFAULT NULL,
`staffrights` tinyint(2) DEFAULT '0',
`staffstatus` tinyint(2) DEFAULT '1',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
designations
CREATE TABLE IF NOT EXISTS `designations` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`designname` varchar(150) NOT NULL,
`designation_group_id` varchar(250) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
designation_group
CREATE TABLE IF NOT EXISTS `designation_group` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`group_name` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
designations
Tabelle designation_group
von designations.designation_group_id
verwandt ist. designations
Tabelle wird einen oder mehrere durch Komma getrennte Werte haben, von designation_group.id
.
designations
Tabelle bezieht sich auf Stäbe Tabelle von staffs.designation_id =designations.id
. In Staffs
Modell Ich habe Beziehungen wie diese hinzugefügt
public function getDesignations() {
return $this->hasOne(Designations::className(), ['id' => 'designation_id']);
}
und arbeitet perfekt. Aber das Verhältnis für designation_group
versuchte ich wie folgt aus:
public function getDesgroupstaffs(){
return $this->hasOne(Designations::className() , ['id' => 'id'])
->from(Designationgroup::tableName()) ;
}
Aber es funktioniert nicht das erwartete Ergebnis. Wie kann die Tabelle designation_group
verbunden werden, so dass auch alle mit den Mitarbeitern verbundenen Bezeichnergruppen angezeigt werden können? Ich möchte zeigen, wie, die erste Spalte der Rasteransicht wird Bezeichnungen sein, während der Filter der gleichen Spalte DesignationGroup.group_name sein sollte. SO wenn irgendein group_name ausgewählt wird, zeigt es Daten von Mitarbeitern an, die mit diesem Gruppenname verbunden sind
Verwendung yii2 joinWidth wie ... 'Modell :: find() -> joinWith ([ 'Relation Name']) -> alle();' beziehen dieser Link [Join With Relation] (http://www.yiiframework.com/doc-2.0/guide-db-active-record.html) – vishuB
Die Beziehung nicht Desgroupstaffs gibt die Bezeichnung Gruppe – user7282
diese eine Beziehung ist falsch '[ 'id' => 'id'] 'in' getDesgroupstaffs() 'Funktion – vishuB