0

NeoEloquent を使用して、Neo4j 2.3.0 と Laravel 5.1 をいじっています。いくつかのダミー ノードとそれらの間のいくつかの関係を設定しました。

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}]

問題は、なぜこれが null を返すのかということです。

さらに興味深いことに、両方の方向で同じものとの関係を設定すると、値が返されます。つまり、USED_BY を USES に変更すると、データが返されますが、これはアーキテクチャの観点からは意味がありません。テンプレートは記事を「使用」しません。

それで、私は何が欠けていますか?

4

1 に答える 1