Može li mi neko objasniti zašto sluzi "model" u mvc?
Koristim CodeIgniter framework znam da se u modelu radi sa bazom podataka al opet ne znam šta stavljat u model a šta u contorller.
Evo naprimjer skripta za potvrdu registracije (aktivacijski email)
Code:
<?php
class User extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('User_model');
}
public function activate()
{
if (($this->uri->segment(3) === FALSE) OR ($this->uri->segment(4) === FALSE))
{
redirect();
}
else
{
$id_user = $this->uri->segment(3);
$validation_code = $this->uri->segment(4);
if ($this->session->userdata('logged_in'))
{
$this->logout(uri_string());
}
$data = $this->User_model->activate($id_user, $validation_code);
if ( ! $data)
{
$this->session->set_flashdata('message', 'Link je neispravan.');
redirect('user/register');
}
elseif ($data == 'is_activated')
{
$this->session->set_flashdata('message', 'Račun je već aktiviran.');
redirect('user/register');
}
else
{
$this->session->set_flashdata('message', 'Uspiješno ste aktivirali račun, sad se možete ' . anchor('user/login', 'prijavit', array('title' => 'Prijava')) . '.');
redirect('user/register');
}
}
}
}
<?php
class User extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('User_model');
}
public function activate()
{
if (($this->uri->segment(3) === FALSE) OR ($this->uri->segment(4) === FALSE))
{
redirect();
}
else
{
$id_user = $this->uri->segment(3);
$validation_code = $this->uri->segment(4);
if ($this->session->userdata('logged_in'))
{
$this->logout(uri_string());
}
$data = $this->User_model->activate($id_user, $validation_code);
if ( ! $data)
{
$this->session->set_flashdata('message', 'Link je neispravan.');
redirect('user/register');
}
elseif ($data == 'is_activated')
{
$this->session->set_flashdata('message', 'Račun je već aktiviran.');
redirect('user/register');
}
else
{
$this->session->set_flashdata('message', 'Uspiješno ste aktivirali račun, sad se možete ' . anchor('user/login', 'prijavit', array('title' => 'Prijava')) . '.');
redirect('user/register');
}
}
}
}
models
Code:
class User_model extends CI_Model
{
function __construct()
{
parent::__construct();
}
function activate($id_user, $validation_code)
{
$id_user = (int)$id_user;
$query = $this->db->query("SELECT `activated`, `validation_code` FROM `users` WHERE `id_user` = $id_user LIMIT 1");
if ($query->num_rows() != 0)
{
$row = $query->row();
if ($row->activated == 1)
{
return 'is_activated';
}
elseif ($row->validation_code == $validation_code)
{
$this->db->query("UPDATE `users` SET `activated` = 1, `ip_address` = '" . $this->input->ip_address() . "' WHERE `id_user` = $id_user LIMIT 1");
return TRUE;
}
return FALSE;
}
return FAlSE;
}
}
class User_model extends CI_Model
{
function __construct()
{
parent::__construct();
}
function activate($id_user, $validation_code)
{
$id_user = (int)$id_user;
$query = $this->db->query("SELECT `activated`, `validation_code` FROM `users` WHERE `id_user` = $id_user LIMIT 1");
if ($query->num_rows() != 0)
{
$row = $query->row();
if ($row->activated == 1)
{
return 'is_activated';
}
elseif ($row->validation_code == $validation_code)
{
$this->db->query("UPDATE `users` SET `activated` = 1, `ip_address` = '" . $this->input->ip_address() . "' WHERE `id_user` = $id_user LIMIT 1");
return TRUE;
}
return FALSE;
}
return FAlSE;
}
}
I dali je ovo vako isravno uradjeno?
Hvala