Добрый день
Есть 3 таблицы:
PM
Event
SnPmContact
Сделал связи в моделях:
PMnamespace App\Models;
use Illuminate\Database\Eloquent\Model;
class PM extends Model
{
public $timestamps = false;
public function events()
{
return $this->hasMany(Event::class, 'pm_id', 'PODE');
}
public function contacts()
{
return $this->hasMany(SnPmContact::class, 'PODE_PM', 'PODE');
}
}
Eventnamespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class Event extends Model
{
public function pm(): BelongsTo
{
return $this->belongsTo(PM::class, 'pm_id', 'PODE');
}
public function contacts(): BelongsTo
{
return $this->belongsTo(SnPmContact::class, 'pm_id', 'PODE_PM');
}
}
SnPmContactnamespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class SnPmContact extends Model
{
public function pm(): BelongsTo
{
return $this->belongsTo(PM::class, 'PODE_PM', 'PODE');
}
public function events()
{
return $this->belongsTo(Event::class, 'PODE_PM', 'pm_id');
}
}
Используя роут протестировал связь таким вот запросом, что она работает
App\Models\SnPmContact::select(['PODE_PM', 'USER_NAME'])->with(['pm:PODE'])->get()
Запрос возвращает данные, всё прекрасно
Потом решил добавить связь в GraphQL (использую вот этот
пакет)
Type GraphQLtype PM {
ID: Int
PODE: Int
NAMEPM: String
NAME2PM: String
TIME_ZONE: Int
contacts: [SnPmContact]
events: [Event]
}
type SnPmContact {
PODE_PM: Int
USER_NAME: String
USER_POST: String
pm: PM
events: [Event]
}
type Event {
id: Int!
pm_id: Int!
start_time: DateTime
status: Int
type: Int
log_text: String
created_at: DateTime
updated_at: DateTime
pm: PM
contacts: [SnPmContact]
}
Добавил Query
type Query {
contactsByPodePM(PODE_PM: Int! @where): [SnPmContact] @all
}
И собственно связь отказывается работать, вот ошибка по одному объекту:
Ошибка{
"message": "Internal server error",
"extensions": {
"category": "internal"
},
"locations": [
{
"line": 4,
"column": 5
}
],
"path": [
"contacts",
0,
"pm"
]
}
Собственно в чём ошибка не понятно, при этом связь у Event->pm работает и в GraphQL отлично, а у SnPmContact->pm именно в GraphQL не работает.
Помогите разобраться