폴더에 폴더와 항목이 들어 있습니다. 모든 mysql은 명확하게하기 위해 축약되었습니다. yii에서 열 이름의 모호성을 제거하는 방법 MANY_MANY 관계
CREATE TABLE folder
folder_id INT,
name VARCHAR(32),
sort_weight INT
CREATE TABLE item
item_id INT,
name VARCHAR(32)
물론의 연결 테이블
당신이 (종류의 리눅스 파일 시스템의 하드 링크와 같은) 하나 개 이상의 폴더에있을 수있는 하나 개의 항목을 추측 할 수 있듯이CREATE TABLE item_folder
folder_id INT,
item_id INT,
sort_weight INT
그 폴더가 통지 sort_weight 너무 다른 폴더 안에 정렬 될 수 있기 때문에 너무. 지금은 YII를 사용하고 있는데이 같은 항목 모델의 좋은 관계를 가지고
public function relations()
{
return array(
'folderitems' => array(self::MANY_MANY, 'Folder', 'item_folder(item_id, folder_id)'),
);
}
문제는 내가 멋진 AR 요청을하려고하고 내가 그것을 정렬하려고 할 때이 문제가 있다는 것입니다. 내 AR 요청 :
$items = Item::model()->with(array(
'folderitems' => array(
'condition' => "folderitems.folder_id = $someid"
),
))->findAll(array('order'=> "folderitems.sort_weight"));
이제 문제는이 같은 구문을 대신 item_folder.sort_weight에 의해 정렬의이 folder.sort_weight에 의해 정렬한다는 것이다.
[...]))->findAll(array('order'=> 'sort_weight2'));
작동 :
나는 item_folder.sort_weight2 말을 시도 할 필드의 이름을 변경합니다.
그러나 나는 같은 두 이름을 유지하고 unknown column
을 말한다
[...]))->findAll(array('order'=> 'item_folder.sort_weight'));
시도합니다.
질문은 - 정확하게 모호하게 만드는 방법입니다.