Created
October 5, 2014 12:21
-
-
Save lucvht/37c2b69f867f95494f81 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
class BaseModel extends \Phalcon\Mvc\Model { | |
private function checkRelationsCommon($operation,$fields,$referenceModel, $referencedFields) { | |
$feedback = []; | |
if (!property_exists($this,$fields)) { | |
$feedback[] = "Cannot find field " . get_class($this) . "->${fields} used by ${operation} in Object " . get_class($this); | |
} | |
if (!property_exists($referenceModel,$referencedFields)) { | |
$feedback[] = "Cannot find field ${referenceModel}->${referencedFields} used by ${operation} in Object " . get_class($this); | |
} | |
return $feedback; | |
} | |
public function belongsTo($fields, $referenceModel, $referencedFields, $options = NULL) { | |
$feedback = []; | |
$feedback = array_merge($feedback,$this->checkRelationsCommon(__FUNCTION__,$fields,$referenceModel,$referencedFields)); | |
if (count($feedback) > 0) { | |
echo implode("<br>",$feedback); | |
} else { | |
return parent::belongsTo($fields, $referenceModel, $referencedFields, $options); | |
} | |
return false; | |
} | |
public function hasOne($fields, $referenceModel, $referencedFields, $options=null) { | |
$feedback = []; | |
$feedback = array_merge($feedback,$this->checkRelationsCommon(__FUNCTION__,$fields,$referenceModel,$referencedFields)); | |
if (count($feedback) > 0) { | |
echo implode("<br>",$feedback); | |
} else { | |
return parent::hasOne($fields, $referenceModel, $referencedFields, $options); | |
} | |
return false; | |
} | |
public function hasMany($fields, $referenceModel, $referencedFields, $options=null) { | |
$feedback = []; | |
$feedback = array_merge($feedback,$this->checkRelationsCommon(__FUNCTION__,$fields,$referenceModel,$referencedFields)); | |
if (count($feedback) > 0) { | |
echo implode("<br>",$feedback); | |
} else { | |
return parent::hasMany($fields, $referenceModel, $referencedFields, $options); | |
} | |
return false; | |
} | |
public function hasManyToMany($fields, $intermediateModel, $intermediateFields, $intermediateReferencedFields, $referenceModel, $referencedFields, $options = NULL) { | |
$feedback = []; | |
$feedback = array_merge($feedback,$this->checkRelationsCommon(__FUNCTION__,$fields,$referenceModel,$referencedFields)); | |
if (!property_exists($intermediateModel,$intermediateFields)) { | |
$feedback[] = "Cannot find field ${intermediateModel}->${intermediateFields} used by " . __FUNCTION__ . " in Object " . get_class($this); | |
} | |
if (!property_exists($intermediateModel,$intermediateReferencedFields)) { | |
$feedback[] = "Cannot find field ${intermediateModel}->${intermediateReferencedFields} used by " . __FUNCTION__ . " in Object " . get_class($this); | |
} | |
if (count($feedback) > 0) { | |
echo implode("<br>",$feedback); | |
} else { | |
return parent::hasManyToMany($fields, $intermediateModel, $intermediateFields, $intermediateReferencedFields, $referenceModel, $referencedFields, $options); | |
} | |
return false; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment