CakePHP3-自反关系与发现者
我开始用CakePHP3开发一个新网站,我被一段关系困住了 给定实体Movies和联接表MoviesMovies。每部电影都与其他电影相关,但在关系中没有方向 对于CakePHP2,我在关系定义中使用了属性finderQuery:CakePHP3-自反关系与发现者,cakephp,orm,cakephp-3.0,finder,Cakephp,Orm,Cakephp 3.0,Finder,我开始用CakePHP3开发一个新网站,我被一段关系困住了 给定实体Movies和联接表MoviesMovies。每部电影都与其他电影相关,但在关系中没有方向 对于CakePHP2,我在关系定义中使用了属性finderQuery: public $hasAndBelongsToMany = array( 'Movies' => array( 'finderQuery' => 'SELECT movies.* FROM movies JOIN movies_mo
public $hasAndBelongsToMany = array(
'Movies' => array(
'finderQuery' => 'SELECT movies.* FROM movies JOIN movies_movies ON (movies_movies.movie_1_id = movies.id AND movies_movies.movie_2_id = {$__cakeID__$}) OR (movies_movies.movie_2_id = movies.id AND movies_movies.movie_1_id = {$__cakeID__$})'
)
);
我试图用属性finder在CakePHP3中重现这种行为,但它不起作用,而且{$cakeID$}没有等价物:
我这样做对吗?您如何编写这个自定义查找程序
PS:CakePHP2的问题就在这里这有帮助吗
$this->belongsToMany('RelatedMovies', [
'className' => 'Movies',
'through' => 'movies_movies',
'conditions' => [
'OR' => [
'AND' =>['MoviesMovies.movie_1_id = RelatedMovies.id', 'MoviesMovies.movie_2_id = Movies.id'],
'AND' => ['MoviesMovies.movie_2_id = RelatedMovies.id', 'MoviesMovies.movie_1_id = Movies.id']
],
],
]);
$this->belongsToMany('RelatedMovies', [
'className' => 'Movies',
'through' => 'movies_movies',
'conditions' => [
'OR' => [
'AND' =>['MoviesMovies.movie_1_id = RelatedMovies.id', 'MoviesMovies.movie_2_id = Movies.id'],
'AND' => ['MoviesMovies.movie_2_id = RelatedMovies.id', 'MoviesMovies.movie_1_id = Movies.id']
],
],
]);