Sie müssen ein Feld aus 2 Tabellen mit der Methode joinWith()
auswählen. Ich habe 2 Tische: Wohnungen und Stadt.joinWith return null Fremdschlüsselwert
Apartments Tabelle hat cityId Feld und Stadt Tabelle hat zwei Felder: id und Wert.
Etwas wie folgt aus:
Ich möchte einige Felder aus Wohnungen Tabelle auszuwählen und über CityID Feldnamen (Wert) von Stadt bekommen.
Relations in Wohnungen Modell:
public function getCity() {
return $this->hasOne(City::className(), ['id' => 'cityId']);
}
Relations in Stadt Modell:
public function getApartments() {
return $this->hasMany(Apartments::className(), ['cityId' => 'id']);
}
In Controller I Abfrage mit joinWith()
Methode bauen, aber es nicht zurück city.value Feld. diese
$apartments = Apartments::find()->select('apartments.title, city.value')->joinWith('city')->all();
print_r($apartments)
kehrt:
Array ([0] => app\models\Apartments Object ([file] => [_attributes:yii\db\BaseActiveRecord:private] => Array ([title] => Квартира 1) [_oldAttributes:yii\db\BaseActiveRecord:private] => Array ([title] => Квартира 1) [_related:yii\db\BaseActiveRecord:private] => Array ([city] =>) [_errors:yii\base\Model:private] => [_validators:yii\base\Model:private] => [_scenario:yii\base\Model:private] => default [_events:yii\base\Component:private] => Array () [_behaviors:yii\base\Component:private] => Array ()) [1] => app\models\Apartments Object ([file] => [_attributes:yii\db\BaseActiveRecord:private] => Array ([title] => Квартира 2) [_oldAttributes:yii\db\BaseActiveRecord:private] => Array ([title] => Квартира 2) [_related:yii\db\BaseActiveRecord:private] => Array ([city] =>) [_errors:yii\base\Model:private] => [_validators:yii\base\Model:private] => [_scenario:yii\base\Model:private] => default [_events:yii\base\Component:private] => Array () [_behaviors:yii\base\Component:private] => Array ()) [2] => app\models\Apartments Object ([file] => [_attributes:yii\db\BaseActiveRecord:private] => Array ([title] => Квартира 3) [_oldAttributes:yii\db\BaseActiveRecord:private] => Array ([title] => Квартира 3) [_related:yii\db\BaseActiveRecord:private] => Array ([city] =>) [_errors:yii\base\Model:private] => [_validators:yii\base\Model:private] => [_scenario:yii\base\Model:private] => default [_events:yii\base\Component:private] => Array () [_behaviors:yii\base\Component:private] => Array ()) [3] => app\models\Apartments Object ([file] => [_attributes:yii\db\BaseActiveRecord:private] => Array ([title] => Квартира 4) [_oldAttributes:yii\db\BaseActiveRecord:private] => Array ([title] => Квартира 4) [_related:yii\db\BaseActiveRecord:private] => Array ([city] =>) [_errors:yii\base\Model:private] => [_validators:yii\base\Model:private] => [_scenario:yii\base\Model:private] => default [_events:yii\base\Component:private] => Array () [_behaviors:yii\base\Component:private] => Array ()) [4] => app\models\Apartments Object ([file] => [_attributes:yii\db\BaseActiveRecord:private] => Array ([title] => Квартира 5) [_oldAttributes:yii\db\BaseActiveRecord:private] => Array ([title] => Квартира 5) [_related:yii\db\BaseActiveRecord:private] => Array ([city] =>) [_errors:yii\base\Model:private] => [_validators:yii\base\Model:private] => [_scenario:yii\base\Model:private] => default [_events:yii\base\Component:private] => Array () [_behaviors:yii\base\Component:private] => Array ()) [5] => app\models\Apartments Object ([file] => [_attributes:yii\db\BaseActiveRecord:private] => Array ([title] => Квартира 6) [_oldAttributes:yii\db\BaseActiveRecord:private] => Array ([title] => Квартира 6) [_related:yii\db\BaseActiveRecord:private] => Array ([city] =>) [_errors:yii\base\Model:private] => [_validators:yii\base\Model:private] => [_scenario:yii\base\Model:private] => default [_events:yii\base\Component:private] => Array () [_behaviors:yii\base\Component:private] => Array ()))
Ich sehe nicht city.value Feld in dieser Antwort, aber Stadt Feld ohne Wert sehen.
Können Sie mir helfen? Was ist das Problem?
Oh, vielen Dank. – rmpstmp
glücklich zu helfen :) – Midhun