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 に変更すると、データが返されますが、これはアーキテクチャの観点からは意味がありません。テンプレートは記事を「使用」しません。
それで、私は何が欠けていますか?