Go to the documentation of this file.00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00015 abstract class ManyToManyLinkedWorker extends UnifiedContainerWorker
00016 {
00020 protected function makeInsertQuery($childId)
00021 {
00022 $uc = $this->container;
00023
00024 return
00025 OSQL::insert()->into($uc->getHelperTable())->
00026 set(
00027 $uc->getParentIdField(),
00028 $uc->getParentObject()->getId()
00029 )->
00030 set($uc->getChildIdField(), $childId);
00031 }
00032
00038 protected function makeDeleteQuery($delete)
00039 {
00040 $uc = $this->container;
00041
00042 return
00043 OSQL::delete()->from($uc->getHelperTable())->
00044 where(
00045 Expression::eq(
00046 new DBField($uc->getParentIdField()),
00047 new DBValue($uc->getParentObject()->getId())
00048 )
00049 )->
00050 andWhere(
00051 Expression::in(
00052 $uc->getChildIdField(),
00053 $delete
00054 )
00055 );
00056 }
00057
00061 protected function joinHelperTable(SelectQuery $query)
00062 {
00063 $uc = $this->container;
00064
00065 if (!$query->hasJoinedTable($uc->getHelperTable()))
00066 $query->
00067 join(
00068 $uc->getHelperTable(),
00069 Expression::eq(
00070 new DBField(
00071 $uc->getParentTableIdField(),
00072 $uc->getDao()->getTable()
00073 ),
00074 new DBField(
00075 $uc->getChildIdField(),
00076 $uc->getHelperTable()
00077 )
00078 )
00079 );
00080
00081 return
00082 $query->
00083 andWhere(
00084 Expression::eq(
00085 new DBField(
00086 $uc->getParentIdField(),
00087 $uc->getHelperTable()
00088 ),
00089 new DBValue($uc->getParentObject()->getId())
00090 )
00091 );
00092 }
00093 }
00094 ?>