如何解决这个php错误"警告"?

时间:2016-05-30 22:57:34

标签: php codeigniter

大家好,我有这个codeigniter代码模型是:

<?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

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

2 个答案:

答案 0 :(得分:0)

您收到此错误,因为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类的构造函数。

答案 1 :(得分:0)

只有两种可能性:路径错误或权限错误。