Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter无法重新声明类_Php_Codeigniter - Fatal编程技术网

Php Codeigniter无法重新声明类

Php Codeigniter无法重新声明类,php,codeigniter,Php,Codeigniter,不是:它只在循环中工作一次。它将在其他时间返回此错误。 我在模型中有一个usermodel.php。当我像这样使用它的时候 $this->load->model("Usermodel"); $user = $this->Usermodel->quer(1); 它抛出“消息:未定义属性:CI_加载程序::$Usermodel” 当我使用 $this->load->model("Usermodel"); $user = new Usermodel(); 它抛出

不是:它只在循环中工作一次。它将在其他时间返回此错误。

我在模型中有一个usermodel.php。当我像这样使用它的时候

$this->load->model("Usermodel");
$user = $this->Usermodel->quer(1);
它抛出“消息:未定义属性:CI_加载程序::$Usermodel”

当我使用

$this->load->model("Usermodel");
$user = new Usermodel();
它抛出“消息:无法重新声明类用户”

用户类具有构造和取消购买函数。我在Usermodel.php文件中调用它。usermodel具有构造和析构函数

<?php 
class User {
        public function __construct(){
        parent::__construct();
}
private $id;
private $email;
private $name;
private $profilPic;
private $topPic;
private $gender;
private $birthday;

private function setid($id){
    $this->id = $id;
}
private function getid(){
    return $this->id;
}
private function setemail($email){
    $this->email = $email;
}
private function getemail(){
    return $this->email;
}
private function setname($name){
    $this->name = $name;
}
private function getname(){
    return $this->name;
}
private function setprofilPic($profilPic){
    $this->profilPic = $profilPic;
}
private function getprofilPic(){
    return $this->profilPic;
}
private function settopPic($topPic){
    $this->topPic = $topPic;
}
private function gettopPic(){
    return $this->topPic;
}
private function setgender($gender){
    $this->gender = $gender;
}
private function getgender(){
    return $this->gender;
}
private function setbirthday($birthday){
    $this->birthday= $birthday;
}
private function getbirhday(){
    return $this->birthday;
}

public function __set($name, $value){
    $functionname = 'set'.$name;
    return $this->$functionname($value);
}
public function __get($name){
    $functionname = 'get'.$name;
    return $this->$functionname();
}

public function __destruct(){}
}

?>

这是用户模型

<?php 
defined('BASEPATH') OR exit('No direct script access allowed');
class Usermodel extends CI_Model {
    public function __construct(){
        parent::__construct();
        $this->load->view("Users.php");
        $this->load->model("Dbmodel");
    }
    public function quer($id){
        $uqcont = array("id" => $id);
        $uiqcont = array("userID", $id);
        $uq = $this->Dbmodel->control("user", $uqcont);
        $uiq = $this->Dbmodel->control("userinfo", $uiqcont, $limit=1, 'userID');
        $user = new Users();
        if($uq->num_rows()==1){
            $uq = $uq->result();
            $user->id=$id;
            $user->name=$uq[0]->name;
            $user->email=$uq[0]->email;
            $user->profilPic="girlprofil.png";
            $user->topPic="arka.jpg";
        }
        if($uiq->num_rows()==1){
            $uiq=$uiq->result();
            if($uiq[0]->profilPic){
                $user->profilPic = $uiq[0]->profilPic;
            }
            if($uiq[0]->topPic){
                $user->topPic = $uiq[0]->topPic;
            }
        }
        return $user;
    }

    public function __destruct(){}

}
?>

这是my view.php的一部分

foreach($query->result() as $row){
     $cont = array("id" => $row->userID);
     $query = $this->Dbmodel->control("user", $cont);
     $this->load->model("Usermodel");
     $user = new Usermodel();
     $user = $user->quer($row->userID);
     $date = new datetime($row->date);
     $date = $date->format("d.m.Y H:i:s");

     //$query = $query->result();
     //foreach($query as $qur){
     echo '$user->name.'<br>'.$row->comment;

     //}
     //unset($user);
}
foreach($query->result()作为$row){
$cont=array(“id”=>$row->userID);
$query=$this->Dbmodel->control(“用户”,$cont);
$this->load->model(“用户模型”);
$user=new Usermodel();
$user=$user->query($row->userID);
$date=新日期时间($row->date);
$date=$date->格式(“d.m.Y H:i:s”);
//$query=$query->result();
//foreach($qur查询){
回显“$user->name.”
“。$row->comment; //} //未设置($用户); }
请注意我的错误并帮助我解决它


用户
被声明了不止一次,可能是在您所指的循环中

这条线在回路中吗

$this->load->model("Usermodel");

如果是这样,请尝试将其移出循环。

User
被声明了不止一次,可能是在您所指的循环中

这条线在回路中吗

$this->load->model("Usermodel");

如果是这样,请尝试将其移出循环。

您将得到一个未定义的属性,因为

 $this->load->model("usermodel");
必须使用小写字母


您得到一个未定义的属性,因为

 $this->load->model("usermodel");
必须使用小写字母


错误是由于在foreach循环中多次加载模型造成的。只加载一次,然后根据需要多次创建类的实例

 $this->load->model("usermodel");
    foreach($query->result() as $row){
         $cont = array("id" => $row->userID);
         $query = $this->Dbmodel->control("user", $cont);
         $user = new Usermodel();
         $user = $user->quer($row->userID);
         $date = new datetime($row->date);
         $date = $date->format("d.m.Y H:i:s");
    }

然后考虑在您的Load >模型()中使用小的CAPS。 我建议在控制器中加载数据,然后将数据传递给视图。让控制器拥有大部分逻辑。例如,在控制器中

$this->load->model('usermodel');
$data['users'] = $this->usermodel->quer($id)->result();
$this->load->view('users_view', $data);
在我看来,这很简单

foreach ($users as $user)
{
//logic e.g. echo $user->name;
}

错误是由于在foreach循环中多次加载模型造成的。只加载一次,然后根据需要多次创建类的实例

 $this->load->model("usermodel");
    foreach($query->result() as $row){
         $cont = array("id" => $row->userID);
         $query = $this->Dbmodel->control("user", $cont);
         $user = new Usermodel();
         $user = $user->quer($row->userID);
         $date = new datetime($row->date);
         $date = $date->format("d.m.Y H:i:s");
    }

然后考虑在您的Load >模型()中使用小的CAPS。 我建议在控制器中加载数据,然后将数据传递给视图。让控制器拥有大部分逻辑。例如,在控制器中

$this->load->model('usermodel');
$data['users'] = $this->usermodel->quer($id)->result();
$this->load->view('users_view', $data);
在我看来,这很简单

foreach ($users as $user)
{
//logic e.g. echo $user->name;
}
$this->load->model(“X”)
正在执行以下操作:

  • 检查models目录是否存在X.php以及它是否存在 在我们的示例“X”中,它使用给定的名称创建类,[
    $this->X=new X();
    ] 您还可以将替代名称传递给load->model方法,如
    $this->load->model(“X”,“my_X_model”)
    ,在这种情况下,加载程序模块将创建

    $this->my_x_model=new x()

  • 它只是提供了一些关于“当你试图加载一个模型时会发生什么”的信息。

    $this->load->model(“X”)
    正在执行以下操作:

  • 检查models目录是否存在X.php以及它是否存在 在我们的示例“X”中,它使用给定的名称创建类,[
    $this->X=new X();
    ] 您还可以将替代名称传递给load->model方法,如
    $this->load->model(“X”,“my_X_model”)
    ,在这种情况下,加载程序模块将创建

    $this->my_x_model=new x()



  • 它只是提供一些关于“当你试图加载一个模型时会发生什么”的信息。

    我将这个“类用户”更改为“类用户扩展CI_模型”,并在循环的上方移动“$this->load->model(“usermodel”)。然后问题就解决了。谢谢你的帮助。

    我将这个“类用户”更改为“类用户扩展CI_模型”,然后我移动了”$this->load->model(“usermodel”)在循环结束时。然后问题就解决了。谢谢您的帮助。

    您在
    视图
    部分中出现语法错误,缺少结束语
    '
    。但这不是问题所在。您也不需要在
    Users
    class
    parent::uu-construct()中执行此操作因为它没有扩展。@ArtisticPhoenix这是epic detect。我怎么不能使用它:DI只是在猜测,不过CI加载类的方式是垃圾。这里没有足够的信息,stacktrace可能是hellpfulI没有sytanx错误朋友。我在这里编辑它。所以我的错误就在这里。您不需要在foreach()中加载模型;您只需执行一次。您的
    视图
    部分出现语法错误,缺少结束语
    '
    。但这不是问题所在。您也不需要在
    Users
    class
    parent::uu-construct()中执行此操作因为它没有扩展。@ArtisticPhoenix这是epic detect。我怎么不能使用它:DI只是在猜测,不过CI加载类的方式是垃圾。这里没有足够的信息,stacktrace可能是hellpfulI没有sytanx错误朋友。我在这里编辑它。所以我的错误就在这里。您不需要在foreach()中加载模型;你只需要做一次,下一个猜测是这一行
    $this->load->view(“Users.php”)你看到我文章末尾的错误图片了吗?错误为“无法重新声明用户”是。这意味着您正在循环中加载
    user
    类,这将导致此错误。我上面评论中的那一行是我下一步要检查的地方。下一个猜测是这一行
    $this->load->view(“Users.php”)你看到我文章末尾的错误图片了吗?错误为“无法重新声明用户”是。这意味着您正在循环中加载
    user
    类,这将导致此错误。我上面评论中的这一行是我下一步要检查的地方。这不是当前问题的解决方案,但可以解决他的下一个问题:)你说@twistedpixel是什么意思?这不是当前问题的解决方案,但可以解决他的下一个问题:)你说@twistedpixel是什么意思?