I got stuck on kinda very basic thing and can not move on. I have tables interpret
and interpret_member
like this (just important data here):
$this->createTable('interpret', [
'name' => $this->string(255)->notNull(),
'PRIMARY KEY (name)'
]);
$this->createTable('interpret_member', [
'name' => $this->string(255)->notNull(),
'interpret' => $this->string(255)->notNull(),
'PRIMARY KEY (name, interpret)'
]);
$this->createIndex(
'idx-interpret_member',
'interpret_member',
'interpret'
);
$this->addForeignKey('fk-interpret_member', 'interpret_member', 'interpret', 'interpret', 'name', 'CASCADE', 'CASCADE');
Then I have models for both tables generated by gii, so I also have method getInterpretMembers
in Interpret model
. First I tried to parse its output according to this manual, which gives me an error Trying to get property 'name' of non-object
. So I searched here and found this thread. Following that I changed my foreach ($members as $member)
to foreach ($members->InterpretMember as $member)
. That gave me error Getting unknown property: yii\db\ActiveQuery::InterpretMember
. The last hope was this thread, but that ended on error Trying to get property 'name' of non-object
. The code of last try was:
public function getInterpretMembers()
{
$members = $this->hasMany(InterpretMember::className(), ['interpret' => 'name']);
foreach ($members as $member) {
$member = ArrayHelper::toArray($member, [
'app\models\user\InterpretMember' => [
'name',
'interpret',
'position'
]
]);
echo "Member = {$member->name}<br/>";
}
die();
}
I used this code for all attempts, it was just modified according to the mentioned threads and manual.