class SelectedModel extends CI_Model {
var $title = 'SelectedModel';
var $content = 'get top n articles';
var $date = '23.2.2011';
function __construct()
{
parent::__construct();
}
function getTopArticles()
{
$result = $this->db->query('select top 5 article from articles;');
if(! $result->num_rows() > 0)
die('There are no articles in db.');
return $result;
}
}
class Front extends CI_Controller {
function __construct()
{
parent::__construct();
}
function index()
{
$this->load->database();
$this->load->helper(array('text', 'html'));
$this->load->model('SelectedModel');
// controller process data and validate it
$top_articles = $this->SelectedModel->getTopArticles();
foreach($top_articles->result() as $item)
{
$item->desc = character_limiter($item->desc, 75);
if(strlen($item->image) == 0)
$item->desc = '/images/default.png';
}
$data['title'] = 'title';
$data['random_articles'] = $top_articles;
$this->load->view('front', $data);
}
}
전면 : MVC의 내 지식이 맞다면codeigniter SQL 결과를 처리 할 위치는 어디입니까?
php foreach($random_articles->result() as $item):
php echo $item->desc
php echo br() . $item->image
php endforeach;
가 궁금하네요. 컨트롤러에서 데이터를 처리하고보기에 표시 할 수 있도록 데이터를 준비합니다. 보기에는 html/css 코드와 echo $ var에 대한 공간 만 있습니다. 모델 기능은 데이터를 가져 오는 것입니다.
데이터를 처리하는 다른 방법이 있습니까? 내 길은 괜찮 니?
최적화 문제 : $ top_articles = $ this-> SelectedModel-> getTopArticles(); PHP가이 줄을 어떻게 관리하는지 정확히 모르겠습니다. '
php foreach($random_articles->result() as $item):
php echo character_limiter($item->desc, 75)
php echo br() . if(strlen($item->image) == 0) echo images/default.png''; else echo $item->image;
php endforeach;
그러나이 방법으로 내가 돈 : 난 그냥 $ 경우 top_articles을 요구하고있어 getTopArticles의 복사본입니다, 그래서 난 내보기에 사용한다면 나는 두 배나 많은 메모리를 사용
전면보기 MVC를 사용하지 마십시오 (view에서는 character_limit, .... 사용).
많은 코드와 이에 대한 설명이 있습니다. 그러나 나는 당신이 실제로 요구하는 것을 결정하는 것처럼 보이지 않습니다. – jzd
어떤 컨트롤러, 모델, 뷰에서 데이터를 처리/검증하는지 묻고 있습니다. 내가 컨트롤러에있는 데이터를 처리/검증하고이를보기 위해 전달합니다. 모델에서 데이터를 생성합니다. – broadband