mirror of
https://github.com/friendica/friendica
synced 2025-04-22 05:50:13 +00:00
Improve Base collection, model and repository
- Add collection pipeline methods - Add save collection method
This commit is contained in:
parent
559879f41f
commit
5ab898f67f
3 changed files with 90 additions and 3 deletions
|
@ -69,6 +69,18 @@ abstract class BaseModel
|
|||
return $model;
|
||||
}
|
||||
|
||||
/**
|
||||
* Magic isset method. Returns true if the field exists, either in the data prperty array or in any of the local properties.
|
||||
* Used by array_column() on an array of objects.
|
||||
*
|
||||
* @param $name
|
||||
* @return bool
|
||||
*/
|
||||
public function __isset($name)
|
||||
{
|
||||
return in_array($name, array_merge(array_keys($this->data), array_keys(get_object_vars($this))));
|
||||
}
|
||||
|
||||
/**
|
||||
* Magic getter. This allows to retrieve model fields with the following syntax:
|
||||
* - $model->field (outside of class)
|
||||
|
@ -80,9 +92,7 @@ abstract class BaseModel
|
|||
*/
|
||||
public function __get($name)
|
||||
{
|
||||
if (empty($this->data['id'])) {
|
||||
throw new HTTPException\InternalServerErrorException(static::class . ' record uninitialized');
|
||||
}
|
||||
$this->checkValid();
|
||||
|
||||
if (!array_key_exists($name, $this->data)) {
|
||||
throw new HTTPException\InternalServerErrorException('Field ' . $name . ' not found in ' . static::class);
|
||||
|
@ -104,4 +114,11 @@ abstract class BaseModel
|
|||
{
|
||||
return $this->data;
|
||||
}
|
||||
|
||||
protected function checkValid()
|
||||
{
|
||||
if (empty($this->data['id'])) {
|
||||
throw new HTTPException\InternalServerErrorException(static::class . ' record uninitialized');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue