First steps to fix the softdelete issue
This commit is contained in:
@@ -11,8 +11,9 @@ class BelongsToManyExtended {
|
|||||||
private $remoteInPivot;
|
private $remoteInPivot;
|
||||||
private $remoteFilter;
|
private $remoteFilter;
|
||||||
private $remoteLimit;
|
private $remoteLimit;
|
||||||
|
private $softDelete;
|
||||||
|
|
||||||
function __construct($localObject, $foreignObject, $pivotTable, $localInPivot, $remoteInPivot, $remoteFilter = Array(), $remoteLimit = Array()) {
|
function __construct($localObject, $foreignObject, $pivotTable, $localInPivot, $remoteInPivot, $remoteFilter = Array(), $remoteLimit = Array(), $softDelete) {
|
||||||
$this->localObject = $localObject;
|
$this->localObject = $localObject;
|
||||||
$this->foreignObject = $foreignObject;
|
$this->foreignObject = $foreignObject;
|
||||||
$this->pivotTable = $pivotTable;
|
$this->pivotTable = $pivotTable;
|
||||||
@@ -20,17 +21,25 @@ class BelongsToManyExtended {
|
|||||||
$this->remoteInPivot = $remoteInPivot;
|
$this->remoteInPivot = $remoteInPivot;
|
||||||
$this->remoteFilter = $remoteFilter;
|
$this->remoteFilter = $remoteFilter;
|
||||||
$this->remoteLimit = $remoteLimit;
|
$this->remoteLimit = $remoteLimit;
|
||||||
|
$this->softDelete = $softDelete;
|
||||||
}
|
}
|
||||||
|
|
||||||
function get(){
|
function get(){
|
||||||
|
|
||||||
$limitsSql = '';
|
$limitsSql = '';
|
||||||
|
|
||||||
foreach ($this->remoteLimit as $key => $value) {
|
foreach ($this->remoteLimit as $key => $value) {
|
||||||
$limitsSql .= "$key $value ";
|
$limitsSql .= "$key $value ";
|
||||||
}
|
}
|
||||||
|
|
||||||
$pivotTable = '{' . $this->pivotTable . '}';
|
$pivotTable = '{' . $this->pivotTable . '}';
|
||||||
$sql = "SELECT * FROM $pivotTable WHERE $this->localInPivot = ? $limitsSql";
|
|
||||||
|
$sql = '';
|
||||||
|
if($this->softDelete){
|
||||||
|
$sql = "SELECT * FROM $pivotTable WHERE $this->localInPivot = ? AND deleted_at IS NULL $limitsSql";
|
||||||
|
} else {
|
||||||
|
$sql = "SELECT * FROM $pivotTable WHERE $this->localInPivot = ? $limitsSql";
|
||||||
|
}
|
||||||
|
|
||||||
$relations = DBInstance::query($sql, Array($this->localObject->id), $this->localObject::_connectionName);
|
$relations = DBInstance::query($sql, Array($this->localObject->id), $this->localObject::_connectionName);
|
||||||
$objects = Array();
|
$objects = Array();
|
||||||
@@ -47,6 +56,7 @@ class BelongsToManyExtended {
|
|||||||
if (empty($objects)) {
|
if (empty($objects)) {
|
||||||
return Array();
|
return Array();
|
||||||
}
|
}
|
||||||
|
|
||||||
return $objects;
|
return $objects;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user