use Cubist\Backpack\app\Magic\Models\Locale;
use Cubist\Backpack\app\Magic\PageData;
use Cubist\Backpack\app\Template\Navigation;
-use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Str;
-use stdClass;
class Item
{
*/
protected $_entity;
+ protected $_entityClass;
+ protected $_entityId;
+
/**
* @param string $id
*/
public function setEntity(CubistMagicPageModel $entity): void
{
+ $this->_entityClass = get_class($entity);
+ $this->_entityId = $entity->getIdValue();
$this->_entity = $entity;
}
*/
public function getEntity(): CubistMagicPageModel
{
+ if (!isset($this->_entity)) {
+ $class = $this->_entityClass;
+ $this->_entity = $class::find($this->_entityId);
+ }
return $this->_entity;
}
/**
* @return PageData
*/
- public function getPageData(){
+ public function getPageData()
+ {
return $this->getEntity()->getPageData();
}
+
+ public function __sleep()
+ {
+ return array_diff(array_keys(get_object_vars($this)), ['_entity']);
+ }
}