2010-05-07 2 views
1

누구나 Kohana ORM을 도울 수 있습니까? 나는 이름과 가치를 꺼낼 수 있습니다. 나는 그들에게 새로운 가치를 줄 수 있고 그것들을 기지에 다시 저장하려하지만, phpmyadmin에서 나는이 옵션 속성에 대해 여전히 오래된 값을 볼 수있다. 어떤이 코드에 문제가 있습니다 (이것은 작동하고 에코 오른쪽 값하지만 난 DB에서 볼 수 없습니다) :Kohana3 ORM save problem

$option = ORM::factory('draft') 
->where('user_id', '=', $user_id) 
->find() 
    ->draft_options 
    ->where('name', '=', $_POST['name']) 
    ->find(); 

$option->name = $_POST['name']; 
$option->value = $_POST['value']; 
$option->save(); 
if ($option->saved()) echo Kohana::debug($option->value); 

답변

1

이게 당신이 찾고 있는게 있니?

$option = ORM::factory('draft') 
    ->where('user_id', '=', $user_id) 
    ->find(); 

$draft_option = $option->draft_options 
    ->where('name', '=', $_POST['name']) 
    ->find(); 

$draft_option->name = $_POST['name']; 
$draft_option->value = $_POST['value']; 
$draft_option->save(); 

if ($draft_option->saved()) echo Kohana::debug($draft_option->value); 
+0

나는 당신의 솔루션이 훌륭하다고 생각하지만, 제 경우에는 여전히 작동하지 않습니다. 모델에 문제가 있다고 생각합니다. – Bob0101

1

에 한번 검사 데이터가 ") (로드> $ 옵션 -"필름으로 얻을하지 않습니다, 또는 "find()"를 실행 한 후 $ 옵션을 echo하면 (기본 키가 반환 될 것이다)

+0

$ option-> loaded() echos TRUE 및 옵션 echos 객체 정보 (Model_Draft_option (35) 등). 첫째로 나는 $ option-> value를 echo하는 경우 그 값은 1이다. $ option-> value = 2; $ option-> save(); 그럼에도 여전히 가치는 변하지 않습니다. – Bob0101

+0

은 테이블 초안 또는 draft_options에 속하는 이름 및 값 필드입니까? 한 모델에서 save()를 호출하면 save() 메서드를 재정의하고 그렇게하도록 지시하지 않는 한 소속 모델을 저장하지 않기 때문입니다. – Kemo

+0

이들은 draft_options에 속합니다. 내가 어떻게 그것을 무시할 수 있습니까? – Bob0101