47 lines
1.4 KiB
PHP
47 lines
1.4 KiB
PHP
<?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;
|
|
use FOF40\Model\DataModel\Collection;
|
|
|
|
/**
|
|
* HasOne (straight 1-to-1) relation: this model is a parent which has exactly one child in the foreign table
|
|
*
|
|
* For example, parentModel is Users and foreignModel is Phones. Each uses has exactly one Phone.
|
|
*/
|
|
class HasOne extends HasMany
|
|
{
|
|
/**
|
|
* Get the relation data.
|
|
*
|
|
* If you want to apply additional filtering to the foreign model, use the $callback. It can be any function,
|
|
* static method, public method or closure with an interface of function(DataModel $foreignModel). You are not
|
|
* supposed to return anything, just modify $foreignModel's state directly. For example, you may want to do:
|
|
* $foreignModel->setState('foo', 'bar')
|
|
*
|
|
* @param callable $callback The callback to run on the remote model.
|
|
* @param Collection $dataCollection
|
|
*
|
|
* @return Collection|DataModel
|
|
*/
|
|
public function getData($callback = null, Collection $dataCollection = null)
|
|
{
|
|
if (is_null($dataCollection))
|
|
{
|
|
return parent::getData($callback, $dataCollection)->first();
|
|
}
|
|
else
|
|
{
|
|
return parent::getData($callback, $dataCollection);
|
|
}
|
|
}
|
|
}
|