내 프로세서 클래스 안에는 db 테이블의 모든 프로젝트를 가져 와서 표시되도록 포맷하는 문이 있습니다. 이 메서드 이 작동하지 않고이 발생하고 getCollection 호출이 중단됩니다. 내가 ManagerProjects
을 절약하고 잘 작동하는 최초의 유사한 방법을 사용Modx : getCollection 쿼리가 작동하지 않습니다.
class GlobalLinkSettingsProcessor extends modObjectGetListProcessor{
public function initialize() {
return parent::initialize();
}
public function process() {
$leadersql = "SELECT * FROM `modx_manager_projects`";
$query = $this->modx->query($leadersql);
$project_names = array();
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
$projects = unserialize($row['manager_projects']);
foreach($projects as $short_code => $project) {
$project_names[] = array('project_name' => $project, 'project_short_code' => $short_code);
}
};
return '{"total":' . count($project_names) . ',"results":' . $this->modx->toJSON($project_names) . ',"success":true}';
}
...
}
을, 그래서 나는 그것을 함께 할 수 있다고 생각하지 않습니다
class GlobalLinkSettingsProcessor extends modObjectGetListProcessor{
public function initialize() {
return parent::initialize();
}
public function process() {
$result = $this->modx->getCollection('ManagerProjects');
$project_names = array();
foreach ($result as $row) {
$projects = unserialize($row->get('manager_projects'));
foreach($projects as $short_code => $project) {
$project_names[] = array('project_name' => $project, 'project_short_code' => $short_code);
}
}
return '{"total":' . count($project_names) . ',"results":' . $this->modx->toJSON($project_names) . ',"success":true}';
}
...
}
일반 SQL
를 사용하여이 코드는 작동합니까 모델 선언. 위의 두 번째 방법을 사용하기 때문에 쉽게 사용할 수 있지만 최선의 방법을 사용하고 싶습니다.
첫 번째 방법의 문제점은 무엇입니까?
첫 번째 방법은 Modx 프로세서에서 SQL을 구현하는 적절한 방법입니까? 아니면 더 좋은 방법이 있습니까?