개발 Q&A

제목 getter,setter 질문드립니다.
글쓴이 작성시각 2012/11/20 16:27:41
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 20997   RSS
 겟터와세터 질문드립니다.

 프레임웍를 쓰지않고 $abc = new A();이런식으로 하여  abc.setA(); 로 값을 저장한후 객체로 넘기는데요

 프레임웍에서는 객체로 넘길때 어떤식으로 넘기나요?
 연관 배열 만들어서 일일이 넣어줘서 넘겨야되나요?

제가 사용한 코드
$this->load->model('auth/auth_dto','auth_dto');
$this->load->model('auth/auth_model','auth_model');

$accountId = $this->input->post('accountId');
$accountPw = $this->input->post('accountPw');

$this->auth_dto->setAccountId($accountId);
$this->auth_dto->setAccountPw($accountPw);

$this->auth_model->test($this->auth_dto);
test 메소드에서 값을 받았지만 값이 이상하게 나오내요 .
 다음글 php 캡슐화 질문드립니다. (3)
 이전글 serialize 질문드립니다 (1)

댓글

헛발이 / 2012/11/20 18:05:49 / 추천 0
콘트롤에서
class Blog extends CI_Controller
{
    function __construct()
    {
        parent::__construct();
        $this->load->model('blog_m');
    }

    function index()
    {
        $this->blog_m->user_name = $this->input->post('user_name');
        $this->blog_m->print_name();
    }
모델에서
class blog_m extends CI_Model
{
    public $user_name;
    
    function __construct()
    {
        parent::__construct();
        $ci =& get_instance();
    }

    function print_name()
    {
        echo $user_name;
    }
이렇게 하면 되지 않을까요?
하지만 대부분 이렇게는 잘 안하시죠...
나름대로 규칙이 있으니깐요..

로그인부분을 하고 계신거라면

http://cikorea.net/lecture/view/116/page/1/

여기 있는 강좌를 한번 보시고 연구를 해보시는것도 좋을거 같네요..
한대승(불의회상) / 2012/11/20 18:59:15 / 추천 0
function object_to_array($object)
{
  if(is_array($object) || is_object($object))
  {
    $array = array();
    foreach($object as $key => $value)
    {
      $array[$key] = object_to_array($value);
    }
    return $array;
  }
  return $object;
}
위 함수로 array로 변환해서 넘겨주세요.


헛발이 / 2012/11/20 19:01:33 / 추천 0
아 그 질문이군요 ㅋㅋ
초보의 한계~
/ 2012/11/20 19:06:44 / 추천 0
헛발이님 불의 회상님 답변 감사합니다.
자바에서처럼 겟셋클래스 만들고 인스턴스 만든다음 인스턴스변수를 통째로 넘겨서 
그걸 가져다 쓰려고한건데 결국 배열을 이용하여 넘기는군요.

자바랑 비슷하길래 자바스럽게 코딩했더니 걸리는게 많내요 ㅠㅠ
 
한대승(불의회상) / 2012/11/20 20:05:07 / 추천 0
쿵// php의 특성이라고 해야 할 까요?
다른 언어를 경험하고 오신분들은 어리둥절 할 수가 있습니다.
php 하시던 분들이 다른언어로 넘어가면 학습시간이 긴 이유이기도 합니다.
milosz / 2012/11/21 06:35:42 / 추천 0
$this->load->model('auth/auth_model','auth_model');
위와 같이 선언해서 사용하시면 사실 static 메소드를 쓰는 것처럼 밖에 되질 않아서 만약 원하시는 것처럼 하시려면,
$this->load->model('auth/auth_model','auth_model');

$foo = new auth_model();
$foo->setUserId(12);
$foo->getUser();
 
요로코롬 사용하셔야 할겁니다.
 
/ 2012/11/22 14:27:34 / 추천 0
답변 감사합니다.
milosz님처럼 코드 작성해보니 되더군요.
그런데 좀 바꿔서 구지 new를 생성안하고도 가능하내요.
마치 java의 new Auth_dto().dto() 이런식으로 도되내요 ㅋㅋ 
좋은거 알았내요 ㅋㅋ