如何解决这个PHP错误“警告”?

问题描述:

你好,大家好我有这个笨代码的模式是:如何解决这个PHP错误“警告”?

<?php 

class Product extends CI_Model{ 
    var $title; 
    var $price; 
    var $name=" "; 
    public function __construct($title1,$price1,$name1) 
    { 
    parent::__construct(); 
    $this->load->database(); 
    $this->title=$title1; 
    $this->price=$price1; 
    $this->name=$name1; 
    } 
    function set_Name ($newname) 
    { 
    $this->name=$newname; 
    } 
    function get_Nmae() 
    { 
    return $this->name; 
    } 
    function set_title($newtitle){ 
    $this->title=$newtitle; 
    } 

    function set_price($newprice) { 
    $this->price=$newprice; 
} 
function get_productAttribute(){ 
    $x1=$this->name; 
    $x2=$this->title; 
    $x3=$this->price; 
    $productattribute = array("$x1","$x2","$x3"); 
    return $productattribute ; 

} 
public function get_data(){ 
    $query=$this->db->query('SELECT*FROM Saied'); 
    return $query->row_array(); 
} 
    public function insert_indb($var){ 
    if (is_a($var, 'Furniture')) 
    { 
$data= array(
    'id1' => '', 
    'name1'=> $this->title, 
    'title1' => $this->title, 
    'price1' => $this->price, 
    'size1' => $this->size, 
    'material1'=>$this->material 

    ); 
    $this->db->insert('Furn',$data); 
    return $data; 

} 
elseif (is_a($var, 'CDDVD')) 
{ 
    $data1= array(
    'id' => '', 
    'title'=>$this->title, 
    'price'=>$this->price, 
    'name'=>$this->name, 
    'sizemb'=>$this->sizeinmb."MB", 
    'manufacture'=>$this->manufacturer 
    ); 
    return $data1; 
} 
else 
{ 
    echo "no spicifed objech"; 
} 
} 
} 
class Furniture extends Product 
{ 
    var $size; 
    var $material; 
public function __construct($title1,$price1,$name1,$sizeset,$materialset) 
    { 
    $this->size=$sizeset; 
    $this->material=$materialset; 
    parent::__construct($title1,$price1,$name1); 
    $this->name1=" "; 
    } 
public function setAtribute_Furniture ($size1,$material1) 
    { 
    $this->size=$size1; 
    $this->material=$material1; 
    } 
} 
class CDDVD extends Product 
{ 
    var $sizeinmb; 
    var $manufacturer; 
    public function __construct($title1,$price1,$name1,$sizeinmbset,$manufacturerset) 
    { 
    $this->sizeinmb=$sizeinmbset; 
    $this->manufacturer=$manufacturerset; 
    parent::__construct($title1,$price1,$name1); 
    } 
    public function setAttribute_CDVD ($sizeinmb1,$manufacturer1) 
    { 
    $this->sizeinmb=$sizeinmb1."MB"; 
    $this->manufacturer=$manufacturer1; 
    } 
} 
$chair = new Furniture("ilove","200 euro"," ","200x200 ","wood"); 

print_r($chair->insert_indb($chair)); 

?> 

和负载控制器这种模式是:

public function __construct() 
     { 
     parent::__construct(); 
     $this->load->model('product'); 
     } 


     } 

事情是每一件事情的工作正是我想去的地方我插入intodatabase并打印每个类的阵列或数组1的值,但codigniter给我流动的错误/警告:遇到PHP错误

Severity: Warning 

Message: Missing argument 1 for Product::__construct(), called in /Applications/MAMP/htdocs/SandWeb/system/core/Loader.php on line 353 and defined 

Filename: models/Product.php 

Line Number: 7 

Backtrace: 

File: /Applications/MAMP/htdocs/SandWeb/application/models/Product.php 
Line: 7 
Function: _error_handler 

File: /Applications/MAMP/htdocs/SandWeb/application/controllers/Pages.php 
Line: 80 
Function: model 

File: /Applications/MAMP/htdocs/SandWeb/index.php 
Line: 315 
Function: require_once 

A PHP Error was encountered 

Severity: Warning 

Message: Missing argument 2 for Product::__construct(), called in /Applications/MAMP/htdocs/SandWeb/system/core/Loader.php on line 353 and defined 

Filename: models/Product.php 

Line Number: 7 

Backtrace: 

File: /Applications/MAMP/htdocs/SandWeb/application/models/Product.php 
Line: 7 
Function: _error_handler 

File: /Applications/MAMP/htdocs/SandWeb/application/controllers/Pages.php 
Line: 80 
Function: model 

File: /Applications/MAMP/htdocs/SandWeb/index.php 
Line: 315 
Function: require_once 

A PHP Error was encountered 

Severity: Warning 

Message: Missing argument 3 for Product::__construct(), called in /Applications/MAMP/htdocs/SandWeb/system/core/Loader.php on line 353 and defined 

Filename: models/Product.php 

Line Number: 7 

Backtrace: 

File: /Applications/MAMP/htdocs/SandWeb/application/models/Product.php 
Line: 7 
Function: _error_handler 

File: /Applications/MAMP/htdocs/SandWeb/application/controllers/Pages.php 
Line: 80 
Function: model 

File: /Applications/MAMP/htdocs/SandWeb/index.php 
Line: 315 
Function: require_once 

A PHP Error was encountered 

Severity: Notice 

Message: Undefined variable: title1 

Filename: models/Product.php 

Line Number: 11 

Backtrace: 

File: /Applications/MAMP/htdocs/SandWeb/application/models/Product.php 
Line: 11 
Function: _error_handler 

File: /Applications/MAMP/htdocs/SandWeb/application/controllers/Pages.php 
Line: 80 
Function: model 

File: /Applications/MAMP/htdocs/SandWeb/index.php 
Line: 315 
Function: require_once 

A PHP Error was encountered 

Severity: Notice 

Message: Undefined variable: price1 

Filename: models/Product.php 

Line Number: 12 

Backtrace: 

File: /Applications/MAMP/htdocs/SandWeb/application/models/Product.php 
Line: 12 
Function: _error_handler 

File: /Applications/MAMP/htdocs/SandWeb/application/controllers/Pages.php 
Line: 80 
Function: model 

File: /Applications/MAMP/htdocs/SandWeb/index.php 
Line: 315 
Function: require_once 

A PHP Error was encountered 

Severity: Notice 

Message: Undefined variable: name1 

Filename: models/Product.php 

Line Number: 13 

Backtrace: 

File: /Applications/MAMP/htdocs/SandWeb/application/models/Product.php 
Line: 13 
Function: _error_handler 

File: /Applications/MAMP/htdocs/SandWeb/application/controllers/Pages.php 
Line: 80 
Function: model 

File: /Applications/MAMP/htdocs/SandWeb/index.php 
Line: 315 
Function: require_once 

所以我的问题是我怎么可以忽略这些警告或者我可能以错误的方式加载模型。 ?

+0

您可以发布您创建产品的代码吗?您可以将var $ name改为public $ name和public $ title和public $ price,而不是使用var $ name来查看是否删除了一些警告 – Brett

+1

您正在以正确的方式加载模型,但在构造函数中需要3个值永远不会发送,或者你退出它或初始化像'public function __construct($ title1 = NULL,$ price1 = NULL,$ name1 = NULL)'(这样,你不能使用变量的一般值) – elddenmedio

+0

到最后我定义了一种产品:$ chair = new Furniture(“ilove”,“200 euro”,“”,“200x200”,“wood”); print_r($ chair-> insert_indb($ chair)); –

您会收到此错误,因为CI模型的构造函数无法接收参数。 CI的型号装载机的 查看源代码位于/YourCIAPP/system/Core/Loader.php名为model

在这种方法中,你可以看到CI负荷模型与此代码

require_once($mod_path.'models/'.$path.$model.'.php'); 
$this->_ci_models[] = $name; 
$CI->$name = new $model(); 

见,CI只是新模型对象与底部的方法Model类的构造函数没有参数。

+0

好吧,所以,我应该使模型的第一类为空构造函数,然后使其他类产品,家具...... ..,我想那么它会工作,因为我需要加载模型。在控制器中? ! –

+0

@saiedtrifess是的,有一个尝试,我认为它会工作。 –

+0

它没有!有任何想法吗 ? –