2012-09-21 4 views
3

공간이 POINT 인 mysql 테이블을 기반으로하는 yii 모델이 있습니다. 이 모델의 레코드를 볼 때 "55.0000, -89.5000"형식으로 좌표를 표시하고 싶습니다. 기본 생성 된 CRUD보기에서 현재이 필드에는 아무 것도 표시하지 않습니다.yii 모델에서 mysql spatial POINT를 읽을 수있는 형식으로 변환하려면 어떻게해야합니까?

나는 에 아마도 AsText 함수를 사용해야한다고 생각하고 있습니까?

어떻게하면됩니까?

나는 값으로 인쇄 얻을 수 발견

UPDATE "POINT (55.0000, -89.5000)"을 이용하여 다음

public function beforeFind() 
{ 
    parent::beforeFind(); 

    $criteria = new CDbCriteria(); 
    $criteria->select = "AsText(coordinates) AS coordinates"; 
    $this->dbCriteria->mergeWith($criteria); 
} 

그러나 이것의 부작용이다 다른 모든 필드는 "설정되지 않음"이됩니다.

답변

2

$criteria->select의 기본값은 "*"입니다. $criteria->select = "AsText(coordinates) AS coordinates"을 설정하면 *를 쓰고 있었기 때문에 단일 열만 반환했습니다. 그래서 내가 한 수동 좌표 열 외에 다른 열을 지정하기 위해 줄을 변경했다 :

$criteria->select = "id,name,street,city,AsText(coordinates) AS coordinates"; 

이 이상적인 방법이지만, 나를 위해 일하고 확실하지. 선택에서 다른 데이터베이스 기능을 사용하기 위해해야 ​​할 것과 동일한 작업이라고 생각합니다.

관련 문제