2013-07-30 2 views
0

오늘 Codeigniter로 인해 로직 문제가 발생했습니다. 4 시간 후에, 나는 여기서 더 잘 물어야한다고 생각했다.Codeigniter :보기에서 컨트롤러 기능을 호출해야합니다.

내 프로젝트 메인 페이지에 포함 된 :

  • 최고 게시물 (속성 : 제목, 로고, 발췌) 각 포스트에 대한
  • 최고 논평은 (속성 : 회원 이름, 아바타)

내 문제는 각 게시물에 대한 최고 해설을 얻는 것입니다.

<?php 
foreach($posts as $post) { 
    echo 'Post Title: '.$post['title'].'<br/>'; 

    $top_commenters = $this->get_top_commenters($post['id']); 
    foreach($top_commenters as $commenter) { 
     echo '<img src="'. $commenter['avatar'] .'"/><br/>'; 
    } 
} 

?> 

난 당신이 내가 상단 덧글을 얻기 위해, 함수에 각 포스트의 ID를 전달하고 있습니다 것으로 나타났습니다 생각 : 내가 코드 점화를 사용하지 않는 경우

이 내가 그것을 할 것입니다 방법이다. 그러나 CodeIgniter에서는 뷰에서 컨트롤러를 호출 할 수 없습니다.

내가 사용할 마지막 솔루션은 Ajax입니다. 하지만 여기서 도움을 얻을 수 있기를 바랍니다.

미리 감사드립니다.

UPDATE :

//Model Function 
function get_popular_posts() { 

    $row = $this->db->query(' 
     SELECT * FROM posts 
     INNER JOIN popular_posts ON posts.id = popular_posts.pid 
     ORDER BY rank DESC LIMIT 6 
    '); 

    return $row->result_array(); 
} 

//Model Function 
function get_top_commenters($post_id){ 

    $row = $this->db->query(' 
     SELECT * 
     FROM users 
     WHERE username 
     IN (
     SELECT username 
     FROM comments WHERE pid = '. $post_id .') 
     ORDER BY likes DESC LIMIT 6 
    '); 

    return $row->result_array(); 
} 
+0

게시물을받는 데 사용하는 컨트롤러와 모델 기능을 나에게 보여줄 수 있습니까? – bottleboot

+0

왜 http://stackoverflow.com/questions/9986520/how-to-call-codeigniter-controller-function-from-view?rq=1 및 http://stackoverflow.com/questions/16366130/calling- a-controller-function-from-a-view-in-codeigniter? rq = 1 및 http://stackoverflow.com/questions/11682604/how-to-call-function-of-controller-in-view-using- codeignator 귀하의 질문에 대답 해달라고. – Gordon

+0

나는 그 이유를 안다! 하지만 주위에 도움이 필요합니다. – Sobiaholic

답변

-6

당신이보기에서 모든 컨트롤러를 호출 할 수 있습니다 : URL의 예 :

<a href="controller_name/controller_function"> My URL </a> 
+1

그건 컨트롤러를 호출하지 않습니다. 그것이 컨트롤러에 연결됩니다. – Gordon

+1

그냥 컨트롤러 (그리고 차례로보기)에 연결됩니다. -1 – BenM

+0

여기서 문제는 컨트롤러 함수를 트리거하는 사용자가 필요하지만 뷰가로드 될 때 결과를 얻는 것, 즉 다른 클래스의 메소드를 호출하고 그 결과를 얻는 것입니다. – Dipen

1

당신이 컨트롤러를 호출 할 것이다 왜의 요청에 따라, 여기 내 모델 기능과 컨트롤러 기능입니다 귀하의 의견에서 기능? 뷰 파일을 생성 할 때까지 모든 데이터 처리가 이미 완료되어 있어야합니다.

$ top_commenters를 컨트롤러 내에서보기에 전달하십시오.

+0

내 질문을 업데이트했습니다. 확인하십시오. – Sobiaholic

관련 문제