2012-01-06 5 views
0

코드 표에 행이 id, name,email 인 표가 있습니다. 나는 다음과 같은 형식을 가지고 있다는 하나의 견해를 가지고 있습니다 :CodeIgniter의 테이블을 기반으로 빈 클래스를 생성하려면 어떻게해야합니까?

<input name='name' value='<?= $record->name; ?>' /> 
<input name='name' value='<?= $record->email; ?>' /> 

또한 새롭고 빈 레코드에 양식을 사용하고 싶습니다. 이 코드는 & 오류의 무리를 던지지 않도록 DB를 결과의 구조와 빈 stdClass를 생성하는 CodeIgniters의 DB 클래스를 사용하는 방법은 무엇입니까?

답변

2

여기에는 기본 해결책이 없습니다. 모든 (비어있는) 속성으로 개체를 채우거나 속성이 있는지 확인해야합니다.

<input name='name' value='<?= isset($record->email) ? $record->email : ''; ?>' /> 

value들에 form_prep()를 실행하는 것을 잊지 마십시오.

시도해 보려는 경우 더미 클래스를 만들 수 있습니다. 액세스 할 수없는 속성에 액세스 할 때

$record = new DB_Record; 
// fetch data from your database and assign to properties of $record 

그런 다음, 그냥 NULL를 반환합니다
class DB_Record { 
    function __get($prop) { 
     return isset($this->$prop) ? $this->$prop : NULL; 
    } 
} 

는 그런 다음 기록의 인스턴스 수 있습니다.

$r = new stdClass(); 
foreach ($this->db->field_data('teams') as $f) { 
    $r->{$f->name} = ''; 
} 

IE : 테이블 이름입니다

0

코드가 변경 될 수 있도록 내가 당신이 할 수있는 생각하는 가장 좋은 방법은 당신이 form_helper에서 SET_VALUE 기능을 사용하는 것이 같다 : from_helper

에서

<input name='name' value='<?= set_value('name', $record->name); ?>' /> 
<input name='email' value='<?= set_value('email',$record->email); ?>' /> 

당신이 form_helper에 대한 자세한 내용을보실 수 있습니다

+0

당신이 놓친 것 같아요. OP는 새로운 항목을 추가 할 때'$ record'에 속성이 없거나 maye이 정의되지 않았기 때문에 OP가 아닌 객체의 속성에 액세스하려고 시도하는 중입니다. –

+0

thats @Madmartigan, 만약 그가 새로운 레코드에 그것을 사용하고 싶다면 단지'$ record' 오브젝트를 생성하고 두 필드를 추가하는 것입니다 :'$ record-> name = '';'와' '$ record-> email = ''', 내가 다시 그 지점을 놓치지 않는 한 – zaherg

1

이 시도, TeamName, 위치, 상태

$의 R이 될 것입니다 오브젝트와 같은 :

팀은 MySQL의 필드와 테이블
$r->TeamName = '' 
$r->Location = '' 
$r->State = '' 

등등.

관련 문제