2013-08-26 2 views
0

MVC 구성 요소를 개발하는 동안 다음과 같은 문제가 있습니다. 게시 된 데이터를 default.php에서 저장하기 전에 필요한 경우 일부 데이터를 수정해야합니다. 지금까지 내가 아는 바로는 특정 모델의 protected Function prepareTable (& $ table)이 필자의 필요를 충족시켜야합니다. 다음과 같이 나는, 아주 간단한 방법으로 시작 :joomla2.5 MVC 모델 prepareTable 함수

protected function prepareTable(&$table){ 

$table=$this->getTable(); 

$table->image="HelloWorld"; 

} 

내 기대를 내 테이블의 템플릿 특정 필드를 제출 한 후 현재 값이 "Helloworld"를 가지고,하지만 그것을하지 않습니다.

아마도 누군가 내가 prepareTable() 함수를 처리하는 방법에 대한 조언을 줄 수 있습니까? 다른 모든 설정이 올바르게 prepareTable(&$table) 방법은 이미에 전달 된 테이블 오브젝트를 가지고있는 경우

답변

2

감사드립니다.

일반적으로 $table을 바꾼 것으로 바뀌면 클래스의 prepareTable()getTable()이 아니기 때문에 이미 행 데이터가 바인딩되어 있습니다. 그것을 대체함으로써 이미 수행 된 작업과 효과적으로 분리됩니다. 나는 당신의 방법처럼 보이는 줄을 제거 할

:

protected function prepareTable(&$table){ 

    $table->image="HelloWorld"; 

} 

당신은 당신의 방법과 매우 유사한 것을 볼 것이다 com_banners에, 줌라 코어 파일에 prepareTable()의 간단한 구현을 보면;

/** 
* Prepare and sanitise the table data prior to saving. 
* 
* @param JTable A JTable object. 
* @since 1.6 
*/ 
protected function prepareTable(&$table) 
{ 
    $table->name = htmlspecialchars_decode($table->name, ENT_QUOTES); 
} 
+0

thx 힌트로 사용 가능합니다. – user2665206

+0

다행이고, 도움을주고, 다른 사람들을 돕기 위해 답을 올바른 것으로 표시 할 수 있습니다. – Craig