@@ -17,16 +17,28 @@ public function apply($builder, Model $model)
1717 $ query = $ builder ->getQuery ();
1818
1919 $ cvModel = $ model ->contentVersions ()->getRelated ();
20+ /**
21+ * @var string cms_content_verions's **content_id**
22+ */
2023 $ cvFK = $ model ->contentVersions ()->getForeignKeyName ();
24+ /**
25+ * @var string cms_content_verions's **id**
26+ */
2127 $ cvPK = $ cvModel ->getKeyName ();
2228 $ cvCreationColumn = $ cvModel ->getCreatedAtColumn ();
2329
2430 /**
2531 * @var Model
2632 */
2733 $ cvPublishedModel = $ cvModel ->publishLog ()->getRelated ();
34+ /**
35+ * @var string cms_content_verions's publish_log's **version_id**
36+ */
2837 $ cvPublishedFK = $ cvModel ->publishLog ()->getForeignKeyName ();
2938
39+ /**
40+ * @var \Illuminate\Database\Query\Builder Content Version Query group by content_id (fetch latest version id `joined_version_id`)
41+ */
3042 $ baseQ = DB ::table ($ cvModel ->getTable ())
3143 ->groupBy ($ cvFK )
3244 ->select ([
@@ -50,11 +62,13 @@ public function apply($builder, Model $model)
5062 fn (JoinClause $ join ) => $ join
5163 ->on ('_cv_t1_base.joined_version_id ' , '= ' , "_cv_t2_p. $ cvPK " )
5264 )
65+ // Where exist publish log
5366 ->whereExists (
5467 fn (\Illuminate \Database \Query \Builder | \Illuminate \Database \Eloquent \Builder $ query ) => $ query
55- ->select (DB :: raw ( 1 ) )
68+ ->select ()
5669 ->from ($ cvPublishedModel ->getTable (), '_cv_base_p ' )
57- ->where ("_cv_base_p. $ cvPublishedFK " , '= ' , "_cv_t2_p. $ cvPK " )
70+ // content version id = publish log version id
71+ ->whereRaw ("_cv_t2_p. {$ cvPK } = _cv_base_p. $ cvPublishedFK " )
5872 )
5973 ->select ('_cv_t2_p.* ' );
6074
0 commit comments