2016-12-05 125 views
-1

这是我的问题:错误笨缺少参数

A PHP Error was encountered

Severity: Warning
Message: Missing argument 1 for TokoSaya::user(), called in /var/www/html/system/core/CodeIgniter.php on line 360 and defined
Filename: controllers/tokosaya.php
Line Number: 32

A PHP Error was encountered

Severity: Notice
Message: Undefined variable: id
Filename: controllers/tokosaya.php
Line Number: 34

A Database Error Occurred

Error Number:
ERROR: syntax error at or near "$" LINE 1: SELECT * FROM usr.persons WHERE id = $id ^
SELECT * FROM usr.persons WHERE id = $id
Filename: /var/www/html/models/m_user.php
Line Number: 18

这是我的控制器:

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class TokoSaya extends CI_Controller { 

/** 
* Index Page for this controller. 
* 
* Maps to the following URL 
*  http://example.com/index.php/welcome 
* - or - 
*  http://example.com/index.php/welcome/index 
* - or - 
* Since this controller is set as the default controller in 
* config/routes.php, it's displayed at http://example.com/ 
* 
* So any other public methods not prefixed with an underscore will 
* map to /index.php/welcome/<method_name> 
* @see http://codeigniter.com/user_guide/general/urls.html 
*/ 
function __construct() 
{ 
    parent::__construct(); 
    $this->load->library('form_validation'); 
    $this->load->helper(array('form', 'html', 'file','string')); 
    //$this->load->library('grocery_CRUD'); 
    //$this->load->model('view'); 
    $this->load->model('m_user'); 
    $this->load->model('amproker'); 
    //$this->data['modul'] = 'Admin'; 
} 

function user($id) 
{ 
    $data['user'] = $this->m_user->GetDetailUser($id); 
    //$data['UserLogin'] = $this->m_user->GetUserLogin($data['user']->person) 
    $data['menu'] = $this->amproker->CategoriesMenu(0,$h=""); 
    $data['page'] = 'user'; 
    $this->load->view('templates_user', $data); 
} 

} 

/* End of file welcome.php */ 
/* Location: ./application/controllers/welcome.php */ 

这是我的模型:

<?php 

/** 
* 
*/ 
class M_User extends CI_Model 
{ 

function __construct() 
    { 
     // Call the Model constructor 
     parent::__construct(); 
     //$this->load->library(array('My_phpmailer', 'encrypt')); 
    } 

function GetDetailUser($id) 
{ 
    $query=$this->db->query("SELECT t0.*, t1.username, t1.person FROM usr.persons t0 RIGHT JOIN usr.logins t1 ON t0.id = t1.person WHERE t1.person = $id"); 
      return $query->row(); 

} 

//function GetUserLogin($user) 
//{ 
    //$query=$this->db->query("SELECT * FROM usr.logins") 
    //return $query->result(); 
//} 

} 

?> 
+0

你怎么打电话给你的控制?确保您在URL中传递用户标识。防爆。 'HTTP://localhost/..../tokosaya/user/ {$ ID}' – Naga

回答

0

从你的错误的顶部工作.. 。

您的方法用户($ id)正在等待一个参数,显然你没有提供它。

所以你写这个的方式,你需要在url上提供这个参数,例如localhost/tokosaya/user/1,在这种情况下,1在你的用户方法中为$ id提供一个值1。

但是,你需要确保该参数确实是一个整数,并把一些思想到如何处理一个整数(ID),不返回结果等等