src/Controller/SunProperty/EcosystemController.php line 43

Open in your IDE?
  1. <?php
  2. namespace App\Controller\SunProperty;
  3. use App\Helper\LogHelper;
  4. use Pimcore\Model\DataObject;
  5. use App\Model\SunProperty\ProjecttypeModel;
  6. use Pimcore\Db;
  7. class EcosystemController extends BaseController
  8. {
  9.     public $locale;
  10.     public function __construct(string $locale '')
  11.     {
  12.         $this->locale $locale;
  13.     }
  14.     public function detail(
  15.         string $slug,
  16.         \Pimcore\Model\Site $site
  17.     )
  18.     {
  19.         $data = [];
  20.         $siteId $site->getId();
  21.         try {
  22.             // Tìm projectType theo slug
  23.             $list = new DataObject\Projecttype\Listing();
  24.             $list->setCondition('siteId = :siteId AND slug = :slug', [
  25.                 'siteId' => $siteId,
  26.                 'slug' => $slug
  27.             ]);
  28.             $list->setLimit(1);
  29.             $projectType $list->current();
  30.             if (!$projectType) {
  31.                 throw new \Exception('Project type not found');
  32.             }
  33.             // Lấy thông tin chi tiết của projectType
  34.             $data ProjecttypeModel::getJsonProject($projectType$this->locale);
  35.             if(isset($data['isShowFilter']) && $data['isShowFilter']){
  36.                 $db Db::get();
  37.                 $query $this->locale  == "en"
  38.                 ?
  39.                 "SELECT DISTINCT CITY.o_id as id, CITY.name as name
  40.                 FROM `object_project` as PRJ INNER JOIN object_localized_city_en as CITY
  41.                 WHERE PRJ.siteId = ? AND PRJ.projectType__id = ? AND CITY.o_id = PRJ.city__id ORDER BY name COLLATE utf8mb4_unicode_ci"
  42.                 :
  43.                 "SELECT DISTINCT CITY.o_id as id, CITY.name as name
  44.                 FROM `object_project` as PRJ INNER JOIN object_localized_city_vi as CITY
  45.                 WHERE PRJ.siteId = ? AND PRJ.projectType__id = ? AND CITY.o_id = PRJ.city__id ORDER BY name COLLATE utf8mb4_unicode_ci";
  46.                 $data['filters']['city'] = $db->fetchAll($query, [$siteId$projectType->getId()]);
  47.             }
  48.         } catch (\Throwable $e) {
  49.             throw $e;
  50.         }
  51.         return $data;
  52.     }
  53. }