primo commit
This commit is contained in:
72
libraries/fof40/Model/DataModel/Relation/BelongsTo.php
Normal file
72
libraries/fof40/Model/DataModel/Relation/BelongsTo.php
Normal file
@ -0,0 +1,72 @@
|
||||
<?php
|
||||
/**
|
||||
* @package FOF
|
||||
* @copyright Copyright (c)2010-2022 Nicholas K. Dionysopoulos / Akeeba Ltd
|
||||
* @license GNU General Public License version 3, or later
|
||||
*/
|
||||
|
||||
namespace FOF40\Model\DataModel\Relation;
|
||||
|
||||
defined('_JEXEC') || die;
|
||||
|
||||
use FOF40\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