У меня есть три таблицы, они:
Контакты
- CONTACT_NAME
- contact_email
- contact_phone
Местонахождение
- LOCATION_NAME
- location_country
Контакты ассоциации
- association_contact_id
- association_contacts_id
- contacts_type
В моих моделях я установил Полиморфы ...
AssociationContact
public function contact()
{
return $this->morphTo();
}
Клиент
public function contact()
{
return $this->morphToMany(
// the related model
'App\Models\AssociationContact',
// the relationship name
'contact',
// the table name, which would otherwise be derived from the relationship name - twowordables
'association_contacts',
// the foreign key will be twowordable_id, derived from the relationship name, which you're adhering to
'association_contact_id',
// the 'other' key, which would otherwise be derived from the related model's snake case name - two_word_id
'association_contacts_id'
);
}
При запуске следующий код:
<code>$clients = Client::all();
foreach($clients as $client)
{
echo "<pre>";
print_r($client->contact);
echo "
";
}
Я получаю следующую ошибку:
Syntax error or access violation: 1066 Not unique table/alias: 'association_contacts' (SQL: select `association_contacts`.*, `association_contacts`.`association_contact_id` as `pivot_association_contact_id`, `association_contacts`.`association_contacts_id` as `pivot_association_contacts_id`, `association_contacts`.`contact_type` as `pivot_contact_type` from `association_contacts` inner join `association_contacts` on `association_contacts`.`id` = `association_contacts`.`association_contacts_id` where `association_contacts`.`association_contact_id` = 7 and `association_contacts`.`contact_type` = App\Models\Client)
Должно быть, я настроил модельные отношения, но не уверен, что сделал неправильно.
Приветствия