You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

151 lines
3.5 KiB

<?php
namespace App\Models;
use CodeIgniter\Model;
class Attributes extends Model
{
/**
* table users name
* @var string
*/
protected $table = 'attributes';
protected $primaryKey = 'id';
protected $allowedFields = ['name', 'active'];
/**
* get active attribute data
* @return array
*/
public function getActiveAttributeData()
{
return $this->where('active', 1)->findAll();
}
/**
* get data by id or all
* @param int $id
* @return array|object|null
*/
public function getAttributeData(int $id = null)
{
if ($id) {
return $this->find($id); // Find by id
}
return $this->findAll(); // Get all
}
/**
* Count attribute values
* @param mixed $id
* @return int|string
*/
public function countAttributeValue($id = null)
{
if ($id) {
return $this->builder('attribute_value')->where('attribute_parent_id', $id)->countAllResults();
}
return 0;
}
/**
* Get attribute value data by attribute_parent_id
* @param mixed $id
* @return array
*/
public function getAttributeValueData($id = null)
{
return $this->builder('attribute_value')->where('attribute_parent_id', $id)->get()->getResultArray();
}
/**
* Get attribute value by id
* @param mixed $id
* @return array|null
*/
public function getAttributeValueById($id = null)
{
return $this->builder('attribute_value')->where('id', $id)->get()->getRowArray();
}
/**
* Insert attribute data
* @param mixed $data
* @return bool|int|string
*/
public function create($data)
{
if ($data) {
return $this->insert($data); // Returns true/false based on success
}
return false;
}
/**
* Update attribute data
* @param mixed $data
* @param mixed $id
* @return bool
*/
public function updateAttribute($data, $id)
{
if ($data && $id) {
return $this->update($id, $data); // Returns true/false based on success
}
return false;
}
/**
* Remove attribute data
* @param mixed $id
* @return bool|\CodeIgniter\Database\BaseResult
*/
public function remove($id)
{
if ($id) {
return $this->delete($id); // Returns true/false based on success
}
return false;
}
/**
* Insert attribute value
* @param mixed $data
* @return bool|\CodeIgniter\Database\BaseResult|\CodeIgniter\Database\Query
*/
public function createValue($data)
{
if ($data) {
return $this->builder('attribute_value')->insert($data); // Insert into attribute_value table
}
return false;
}
/**
* Update attribute value
* @param mixed $data
* @param mixed $id
* @return bool
*/
public function updateValue($data, $id)
{
if ($data && $id) {
return $this->builder('attribute_value')->where('id', $id)->update($data); // Update attribute_value table
}
return false;
}
/**
* Remove attribute value
* @param mixed $id
* @return bool|string
*/
public function removeValue($id)
{
if ($id) {
return $this->builder('attribute_value')->where('id', $id)->delete(); // Delete from attribute_value table
}
return false;
}
}