primo commit
This commit is contained in:
		
							
								
								
									
										74
									
								
								libraries/fof30/Model/DataModel/Relation/BelongsTo.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								libraries/fof30/Model/DataModel/Relation/BelongsTo.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,74 @@ | ||||
| <?php | ||||
| /** | ||||
|  * @package   FOF | ||||
|  * @copyright Copyright (c)2010-2021 Nicholas K. Dionysopoulos / Akeeba Ltd | ||||
|  * @license   GNU General Public License version 2, or later | ||||
|  */ | ||||
|  | ||||
| namespace FOF30\Model\DataModel\Relation; | ||||
|  | ||||
| defined('_JEXEC') || die; | ||||
|  | ||||
| use FOF30\Model\DataModel; | ||||
|  | ||||
| /** | ||||
|  * BelongsTo (reverse 1-to-1 or 1-to-many) relation: this model is a child which belongs to the foreign table | ||||
|  * | ||||
|  * For example, parentModel is Articles and foreignModel is Users. Each article belongs to one user. One user can have | ||||
|  * one or more article. | ||||
|  * | ||||
|  * Example #2: parentModel is Phones and foreignModel is Users. Each phone belongs to one user. One user can have zero | ||||
|  * or one phones. | ||||
|  */ | ||||
| class BelongsTo extends HasOne | ||||
| { | ||||
| 	/** | ||||
| 	 * Public constructor. Initialises the relation. | ||||
| 	 * | ||||
| 	 * @param   DataModel  $parentModel       The data model we are attached to | ||||
| 	 * @param   string     $foreignModelName  The name of the foreign key's model in the format | ||||
| 	 *                                        "modelName@com_something" | ||||
| 	 * @param   string     $localKey          The local table key for this relation, default: parentModel's ID field | ||||
| 	 *                                        name | ||||
| 	 * @param   string     $foreignKey        The foreign key for this relation, default: parentModel's ID field name | ||||
| 	 * @param   string     $pivotTable        IGNORED | ||||
| 	 * @param   string     $pivotLocalKey     IGNORED | ||||
| 	 * @param   string     $pivotForeignKey   IGNORED | ||||
| 	 */ | ||||
| 	public function __construct(DataModel $parentModel, $foreignModelName, $localKey = null, $foreignKey = null, $pivotTable = null, $pivotLocalKey = null, $pivotForeignKey = null) | ||||
| 	{ | ||||
| 		parent::__construct($parentModel, $foreignModelName, $localKey, $foreignKey, $pivotTable, $pivotLocalKey, $pivotForeignKey); | ||||
|  | ||||
| 		if (empty($localKey)) | ||||
| 		{ | ||||
| 			/** @var DataModel $foreignModel */ | ||||
| 			$foreignModel = $this->getForeignModel(); | ||||
| 			$foreignModel->setIgnoreRequest(true); | ||||
|  | ||||
| 			$this->localKey = $foreignModel->getIdFieldName(); | ||||
| 		} | ||||
|  | ||||
| 		if (empty($foreignKey)) | ||||
| 		{ | ||||
| 			if (!isset($foreignModel)) | ||||
| 			{ | ||||
| 				/** @var DataModel $foreignModel */ | ||||
| 				$foreignModel = $this->getForeignModel(); | ||||
| 				$foreignModel->setIgnoreRequest(true); | ||||
| 			} | ||||
|  | ||||
| 			$this->foreignKey = $foreignModel->getIdFieldName(); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * This is not supported by the belongsTo relation | ||||
| 	 * | ||||
| 	 * @throws DataModel\Relation\Exception\NewNotSupported when it's not supported | ||||
| 	 */ | ||||
| 	public function getNew() | ||||
| 	{ | ||||
| 		throw new DataModel\Relation\Exception\NewNotSupported("getNew() is not supported by the belongsTo relation type"); | ||||
| 	} | ||||
|  | ||||
| } | ||||
		Reference in New Issue
	
	Block a user