ich Fragen habe ein Feld aus einer Tabelle Tasten mit zwei ausländischen zu bekommen.Yii2 Relations ein Feld mit zwei Fremdschlüssel zu bekommen
erklärt die Beziehungen der Verwendung Tabellen unten.
- Benutzertabelle hasMany Companies (company_id).
- Firma Tabelle hat company_id.
- Einrichtungen hasOne company_id (Basierend auf der Benutzerinstanz).
- Gebiet hasMany Facilites (facility_id).
Der angemeldete Benutzer wird Bereiche haben, die mit facilities_id in Beziehung stehen, was wiederum mit company_id zusammenhängt.
Ich habe jetzt ein
- Produktlinien hasMany Produkte (product_id).
Der Benutzer sollte auf die Bereiche verwandte Produkte anzuzeigen.
- Produktlinien hasMany Areas (area_id).
- Produktlinien haben ein Feld namens internal_code.
Das Produktmodell hat eine Beziehung zu Produktlinien auf der Basis von products_id.
Ich möchte auf der Basis von product_id diesen internen Code angezeigt werden, die zu den spezifischen Bereichen gehören.
Mein Code wie jetzt, die nicht funktioniert: Modell
In meinem Produkt.
public function getFacility()
{
return $this->hasMany(Facility::className(),['facility_id' => 'facility_id'])->viaTable('sim_users',['company_id'=> Yii::$app->user->identity->company_id]);
}
public function getArea()
{
return $this->hasMany(Area::className(),['area_id'=>'area_id'])->viaTable('sim_facility',['facility_id'=> 'facility_id' ]);
}
public function getProductlines()
{
return $this->hasMany(Productlines::className(), ['product_id' => 'product_id'])->viaTable('sim_productlines',['product_id' => 'product_id']);
}
Meiner Ansicht Datei:
[
'label' => 'Internal Code',
'format' => 'raw',
'value' => function ($data) {
foreach ($data->productlines as $intCode)
return $intCode->internal_code;
}
Ich verstehe nicht, wie diese Beziehungen zu verknüpfen. Suche nach Hilfe. Dank
Liste der Tabellen:
- Benutzer (primaryKey - users_id, foreign_key- comapny_id)
- Company (primaryKey - company_id)
- Facility (primaryKey - facility_id, foreignKey- company_id)
- Areas (primaryKey - area_id, foreignKey- facility_id)
- Produktlinien (primaryKey - productlines_id, foreignKey - product_id und area_id)
- Produkt (primaryKey - product_id).
Mein erwartetes Ergebnis:
In der obigen Tabelle können Sie sehen, area_id 47 hat zwei product_id sind (1 und 3). und der interne Code für sie ist anders. Ich möchte, dass sie beide internen Codes ab sofort zurückgeben, ich kann nur einen internen Code bekommen.
Es ist nicht klar, welche Entitäten Sie haben und wie sie verknüpft sind.Können Sie eine vollständige Liste von Tabellen mit Primärschlüsseln und Fremdschlüsseln bereitstellen (nur Namen reichen aus)? Und zeigen Sie bitte ein Beispiel für das erwartete Ergebnis – oakymax
@MaximKorshunov Ich habe die Tabellennamen und Beziehungen hinzugefügt .. –