2013-07-17 2 views
1

두 테이블이 함께 연결되었습니다. 제품과 attributetype은 attributetype_product를 통해 링크되었습니다. 연결 테이블에는 관계에 대한 데이터가 있습니다. Redbean을 사용하여 해당 연결 테이블의 데이터를 업데이트하는 쉬운 방법을 알 수 없습니다. link() 함수를 사용하면 초기 데이터를 쉽게 설정할 수 있습니다. 그러나 나는 그 관계를 쉽게 바꾸는 방법을 알 수 없다. 제품 빈을로드 한 후에 ownAttributetype_product를 사용하여 해당 레코드를 업데이트 할 수 있다는 것을 알고 있지만 링크 레코드의 ID를 알고 있어야합니다.Redbean 공유 목록에 대한 연결 값 업데이트

잠재적으로 공유 목록을 통해 링크를 업데이트하는 방법에 대한 도움이 필요하십니까?

답변

0

이 작업을 수행하는 유일한 방법은 올바른 기본 bean id를 가진 하나가 될 때까지 연결된 bean을로드 한 다음 sharedAttributeTypeList를 반복하는 것입니다.

은 가장 자주, 그러나, 나는 액세스하고 콩 연결에 대해 생각했다 방법에 약간의 디자인 및 범위 변경은 불필요 이러한 유형의 액세스를 만들어
$project = R::dispense('project'); 
$project->name = 'useless'; 
$employee = R::dispense('employee'); 
$employee->name = 'employee'; 
$project->link('employee_project', [ 'role' => 'director' ])->employee; 
R::store($project); 

$directors = $project 
    ->with(' employee_project.role=?', [ 'director' ]) 
    ->ownEmployeeList; 
$director = reset($director); 
foreach($director->xownEmployeeProjectList as $bean){ 
    if($bean->project_id == $project->id) 
    break; 
} 

//now $bean contains the correct Employee_Project bean and can be worked on 

. 정말 당신이 연결 빈에 자격을 추가하는 이유를 살펴본 다음 그 빈을 자체 도메인 모델로 추상화하거나 허용되는 액세스 범위를 제한하려고 시도합니다. 빈을 연결하여 이러한 종류의보고가 필요하므로 이미 내 예제에서 프로젝트 ID, 직원 ID 또는 필요한 연결 빈을 지정하는 기타 정보를 알고 필요한 연결 bean 만 검색하기 위해 "with"를 사용하십시오.

관련 문제