各位好想起問一下,
各位在用codeigniter時怎麼設計model?
像是前台可以發參數給controller,
contriller可以收,
但MODEL似乎無法接收參數,
補充一下我的意思是說在MVC的前提之下,我要透過c去取m的data,但要如何傳參數過去才有辦法動態回復資料回來。
$this->load->model()是用來載入mode class並做成controller底下的物件屬性之一。
並不是這樣就用了model。
假設你像這樣實作了一個model
class User extends CI_Model {
function getName(){
return $this->input->post('name');
}
}
你在controller要這樣使用
class Demo extends CI_Controller {
function __construct(){
parent::__construct();
}
function getName(){
$this->load->model('user');
echo $this->user->getName();
}
}
在ci中$this->load大部份都是用來載入東西的。
我不太否認其實ci用$this->load->view()來載入樣板是一件……有違和感的事就是了。
(所以我自己就改成用view(), 來處理樣板,其實也就只是寫個helper而已)
另外,通常就是會把資料庫的行為封裝在這個所謂的model裡面(雖然關於model這件事有很多眾說紛紜的意見,這邊我就不討論那些事了。)
另外因為我習慣會把database寫在autoload,所以就沒在model寫$this->load->database();
class User extends CI_Model {
function getName(){
$name = $this->input->post('name');
$query = $this->db->where('name',$name)->get();
return $query;
}
}
你在controller就要這樣使用
class Demo extends CI_Controller {
function __construct(){
parent::__construct();
}
function getName(){
$this->load->model('user');
$query = $this->user->getName();
print_r($query->reuslt_array());
}
}