У меня есть что-то вроде следующей таблицы (tablename = applications
):
| id | applicants |
| ------------- | ------------- |
| uuid-123-abc | [{'first_name':'Dave'},{'first_name':'Steve'}] |
Мне нужно создать отношения, чтобы я мог просто пойти:
$application->applicants
и (в этом примере) получите коллекцию с двумя Applicant
моделями.
Я предполагаю, что мне понадобится где-нибудь класс модели для кандидата. Но я даже не уверен, что это можно сделать, потому что нет таблицы applicant
.
Я пытался просто:
public function applicants()
{
return Collection::make([$this->applicants]);
Но это не отношения, и я пытаюсь заставить это работать с Neromerx JsonApi .
На самом деле, если есть способ имитировать такое поведение для JsonApi, я бы с таким же успехом воспользовался этим решением.
До сих пор все мои отношения были довольно простыми. И я хотел бы получить кандидатов таким же образом:
use Neomerx\JsonApi\Schema\SchemaProvider;
class ApplicationSchema extends SchemaProvider
{
protected $resourceType = 'applications';
public function getId($application) {
return $application->id;
}
public function getAttributes($application) {
return [
.....
];
}
public function getRelationships($application, $isPrimary, array $includeRelationships) {
return [
'applicants' => [self::DATA => $application->applicants];
];
}
}
Можно ли это сделать, используя один из этих подходов?
Я не использую Laravel, я просто использую Eloquent (версия 5.5) в Slim.