有没有办法将值从一个控制器传递给模型作为GET或POST
我有1个控制器 V1 和1个型号 Vmodel
class V1 extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->model('Vmodel','',TRUE);
}
/* index action */
public function index()
{
$user='abcd';
$details = $this->Vmodel->login();
}
}
模型
class V1Modelnew extends CI_Model{
public function __construct() {
}
public function login()
{
//here, I need to get the user variable as post
echo $_POST['user'];
}
}
我需要获得价值' abcd'作为模型中的POST。有什么办法吗?
答案 0 :(得分:2)
代码中的错误
$this->load->model('Vmodel'
但您定义的模型为V1Modelnew
$user
值传递给模型函数$_POST['user']
在控制器中
class V1 extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->model('V1Modelnew'); # Changed
}
public function index()
{
$user='abcd';
$details = $this->V1Modelnew->login($user); # Changed
}
}
在模型中
class V1Modelnew extends CI_Model{
public function __construct()
{
}
public function login($user) # Changed
{
echo $user; # Changed
}
}
答案 1 :(得分:0)
这里存在架构问题。您不希望模型访问$ _POST或$ _GET中的值。这会将您的模型层耦合到应用程序的HTTP层。
相反,您希望将必要的值作为函数参数传递给模型。
你的控制器:
$details = $this->Vmodel->login('abcd', $_POST['password']);
你的模特:
public function login($username, $password) {
// return $details
}
答案 2 :(得分:0)
尝试这种方式
class V1 extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->model('Vmodel','',TRUE);
}
/* index action */
public function index()
{
$user=$this->input->post('user');
$details = $this->Vmodel->login($user);
}
}
型号:
class Vmodel extends CI_Model{ //use Vmodel NOT V1Modelnew
public function __construct() {
}
public function login($user)
{
echo $user;
}
}
如果您想要用户post
和get
,则需要以这种方式在Controller中执行此操作:
$value = $this->input->post('value_name'); // for Post
$value = $this->input->get('value_name'); // for GET
如需了解更多信息,请阅读documentation
答案 3 :(得分:0)
控制器
class V1 extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->model('Vmodel','',TRUE);
}
/* index action */
public function index()
{
$user='abcd';
$details = $this->Vmodel->login($_POST);
}
}
模型
class V1Modelnew extends CI_Model{
public function __construct() {
}
public function login($data='')
{
//here, I need to get the user variable as post
echo $_POST['user'];
}
}