Сопоставление отношений с NeoEloquentPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Сопоставление отношений с NeoEloquent

Сообщение Anonymous »

Я работаю с Neo4j 2.3.0 и Laravel 5.1, используя NeoEloquent. Я установил пару фиктивных узлов и некоторые связи между ними:

изображение модели Neo4j — извините, я пока не могу вставлять изображения напрямую :)

Таким образом, статьи могут использовать шаблон. Обратным этому отношению является то, что шаблон используется в статье.

Я настроил классы так:

Код: Выделить всё

Class Template extends Model
{
public function articles()
{
return $this->hasMany('App\Article', 'USED_BY');
}
}
И:

Код: Выделить всё

Class Article extends Model
{
public function template()
{
return $this->belongsTo('App\Template', 'USES');
}
}
Думаю, пока все хорошо.

У меня есть страница, на которой я хочу в конечном итоге разместить список все статьи в системе, а также некоторые полезные метаданные, например шаблон, который каждая из них использует. Для этого я кое-что настроил в контроллере:

Код: Выделить всё

$articles = array();

foreach (Article::with('template')->get() as $article) {
array_push($articles, $article);
}

return $articles;
Не самый элегантный вариант, но он должен возвращать данные как для статьи, так и для связанного с ней шаблона. Однако:

Код: Выделить всё

[{"content":"Some test content","title":"Test Article","id":28,"template":null},{"content":"Some flibble content","title":"Flibble","id":31,"template":null}]
Итак, вопрос в том, почему это возвращает ноль?

Более интересно, если я настрою связь к одному и тому же в ОБОИХ направлениях, он возвращает значения. т. е. если я изменю USED_BY на USES, данные будут возвращены, но это не имеет смысла с архитектурной точки зрения — шаблон не «использует» статью.

Так чего же мне не хватает?

Подробнее здесь: https://stackoverflow.com/questions/336 ... eoeloquent
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»