Php Codeigniter无法重新声明类
不是:它只在循环中工作一次。它将在其他时间返回此错误。 我在模型中有一个usermodel.php。当我像这样使用它的时候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(); 它抛出
$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”)
正在执行以下操作:
$this->X=new X();
]
您还可以将替代名称传递给load->model方法,如
$this->load->model(“X”,“my_X_model”)
,在这种情况下,加载程序模块将创建
$this->my_x_model=new x()$this->load->model(“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
classparent::uu-construct()中执行此操作代码>因为它没有扩展。@ArtisticPhoenix这是epic detect。我怎么不能使用它:DI只是在猜测,不过CI加载类的方式是垃圾。这里没有足够的信息,stacktrace可能是hellpfulI没有sytanx错误朋友。我在这里编辑它。所以我的错误就在这里。您不需要在foreach()中加载模型;您只需执行一次。您的视图
部分出现语法错误,缺少结束语'
。但这不是问题所在。您也不需要在Users
classparent::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是什么意思?