| Server IP : 103.161.17.216 / Your IP : 216.73.216.1 Web Server : nginx/1.18.0 System : Linux tipsysaigoncharming 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 User : www-data ( 33) PHP Version : 7.4.3-4ubuntu2.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/app.ansachsongkhoe.net/app/ |
Upload File : |
<?php
namespace App;
use DB;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Category extends Model
{
use SoftDeletes;
/**
* The attributes that should be mutated to dates.
*
* @var array
*/
/**
* The attributes that aren't mass assignable.
*
* @var array
*/
protected $guarded = ['id'];
/**
* Combines Category and sub-category
*
* @param int $business_id
* @return array
*/
public static function catAndSubCategories($business_id)
{
$all_categories = Category::where('business_id', $business_id)
->where('category_type', 'product')
->orderBy('name', 'asc')
->get()
->toArray();
if (empty($all_categories)) {
return [];
}
$categories = [];
$sub_categories = [];
foreach ($all_categories as $category) {
if ($category['parent_id'] == 0) {
$categories[] = $category;
} else {
$sub_categories[] = $category;
}
}
$sub_cat_by_parent = [];
if (!empty($sub_categories)) {
foreach ($sub_categories as $sub_category) {
if (empty($sub_cat_by_parent[$sub_category['parent_id']])) {
$sub_cat_by_parent[$sub_category['parent_id']] = [];
}
$sub_cat_by_parent[$sub_category['parent_id']][] = $sub_category;
}
}
foreach ($categories as $key => $value) {
if (!empty($sub_cat_by_parent[$value['id']])) {
$categories[$key]['sub_categories'] = $sub_cat_by_parent[$value['id']];
}
}
return $categories;
}
/**
* Category Dropdown
*
* @param int $business_id
* @param string $type category type
* @return array
*/
public static function forDropdown($business_id, $type)
{
$categories = Category::where('business_id', $business_id)
->where('parent_id', 0)
->where('category_type', $type)
->select(DB::raw('IF(short_code IS NOT NULL, CONCAT(name, "-", short_code), name) as name'), 'id')
->orderBy('name', 'asc')
->get();
$dropdown = $categories->pluck('name', 'id');
return $dropdown;
}
public function sub_categories()
{
return $this->hasMany(\App\Category::class, 'parent_id');
}
/**
* Scope a query to only include main categories.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @return \Illuminate\Database\Eloquent\Builder
*/
public function scopeOnlyParent($query)
{
return $query->where('parent_id', 0);
}
}