. */ namespace Traits; use Models\Module; use Models\Plugin; trait RecordTrait { abstract public function getModuleAttribute(); public function getModule() { return !empty($this->module) ? Module::pool($this->module) : null; } public function getPlugin() { return !empty($this->plugin) ? Plugin::pool($this->plugin) : null; } /** * @param string $name */ public function customField($name) { $field = database()->table('zz_fields') ->leftJoin('zz_field_record', 'zz_fields.id', '=', 'zz_field_record.id_field') ->where('zz_fields.name', '=', $name) ->where('zz_fields.id_module', '=', $this->getModule()->id) ->where('zz_field_record.id_record', '=', $this->id) ->first(); return $field->value; } public function uploads() { $module = $this->getModule(); $plugin = $this->getPlugin(); if (!empty($module)) { return $module->uploads($this->id); } if (!empty($plugin)) { return $plugin->uploads($this->id); } return collect(); } }