Maslosoft Mangan API
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
<?php
/**
* This software package is licensed under AGPL or Commercial license.
*
* @package maslosoft/mangan
* @licence AGPL or Commercial
* @copyright Copyright (c) Piotr Masełkowski <pmaselkowski@gmail.com>
* @copyright Copyright (c) Maslosoft
* @copyright Copyright (c) Others as mentioned in code
* @link https://maslosoft.com/mangan/
*/
namespace Maslosoft\Mangan\Traits\Criteria;
use Maslosoft\Mangan\Interfaces\Criteria\SelectableInterface;
use Maslosoft\Mangan\Interfaces\CriteriaInterface;
/**
* SelectableTrait
* @see CriteriaInterface
* @see SelectableInterface
* @author Piotr Maselkowski <pmaselkowski at gmail.com>
*/
trait SelectableTrait
{
private $_select = [];
/**
* List of fields to get from DB
* Multiple calls to this method will merge all given fields
*
* @param array $fields list of fields to select
* @return CriteriaInterface
*/
public function select(array $fields = null)
{
if ($fields !== null)
{
$this->setSelect(array_merge($this->_select, $fields));
}
return $this;
}
/**
* Return selected fields
* @return bool[] Fields used for select
* @since v1.3.1
*/
public function getSelect()
{
return $this->_select;
}
/**
* Set fields to select.
* Pass array with field names as keys and true as value, ie:
* ```php
* $criteria->setSelect(['_id' => true, 'title' => true]);
* ```
*
* NOTE: This resets entire select
*
* @param bool[] $select Fields to select
* @return CriteriaInterface
*/
public function setSelect(array $select)
{
$this->_select = [];
// Convert the select array to field=>true/false format
foreach ($select as $key => $value)
{
if (is_int($key))
{
$this->_select[$value] = true;
}
else
{
$this->_select[$key] = $value;
}
}
return $this;
}
}
API documentation generated by ApiGen