php require 找不到,PHP文件找不到类,但是定义了该类

我有一个名为" purchases.controller.php"的php文件,其中,在"购买"类的名为" ctrCash"的函数中,我将变量传递给了已定义的" CartController"类的名为" ctrNewCashPurchase"的函数, 但是当我运行项目时,我收到消息:

"Fatal error : Uncaught Error: Class 'CartModel' not found in ..."

如果我在函数ctrNewCashPurchase中执行var_dump,我意识到我正在输入该函数,但是它告诉我它无法识别" CartModel",因此我不明白为什么。

我共享" purchases.controller.php"文件的代码:

class CartController{

static public function ctrNewCashPurchase($datos){

$tabla ="compras";

$respuesta = CartModel::mdlNewCashPurchase($tabla, $datos);

if($respuesta =="ok"){

$tabla ="comentarios";

ModeloUsuarios::mdlIngresoComentarios($tabla, $datos);

}

return $respuesta;

}

}

class Purchases {

public function ctrCash (&$arrayCompleto, &$usuario, &$direccion1, &$direccion2, &$dia, &$hora, &$email, &$telefono, &$sesion){

if(isset($usuario)){

//Here I create an array

for($i = 0; $i < count($arrayCompleto); $i++){

$datos = array("idUsuario"=> $sesion,

"idProducto"=> $arrayCompleto[$i]["idProducto"],

"metodo"=>"Efectivo",

"email"=> $email,

"direccion"=> $direccion1,

"detalleDireccion"=> $direccion2,

"diaEnvio"=> $dia,

"horaEnvio"=> $hora,

"telefono"=> $telefono,

"pais"=>"ARG");

}

$respuesta = CartController::ctrNewCashPurchase($datos);

}

}

}

我共享" purchases.model.php"文件的代码,在其中定义CartModel类:

class CartModel{

static public function mdlNewCashPurchase($tabla, $datos){

$stmt = Conexion::conectar()->prepare("INSERT INTO $tabla (id_usuario, id_producto, metodo, email, direccion, pais, detalleDireccion, diaEnvio, horaEnvio, telefono) VALUES (:id_usuario, :id_producto, :metodo, :email, :direccion, :pais, :detalleDireccion, :diaEnvio, :horaEnvio, :telefono)");

$stmt->bindParam(":id_usuario", $datos["idUsuario"], PDO::PARAM_INT);

$stmt->bindParam(":id_producto", $datos["idProducto"], PDO::PARAM_INT);

$stmt->bindParam(":metodo", $datos["metodo"], PDO::PARAM_STR);

$stmt->bindParam(":email", $datos["email"], PDO::PARAM_STR);

$stmt->bindParam(":direccion", $datos["direccion"], PDO::PARAM_STR);

$stmt->bindParam(":pais", $datos["pais"], PDO::PARAM_STR);

$stmt->bindParam(":detalleDireccion", $datos["detalleDireccion"], PDO::PARAM_STR);

$stmt->bindParam(":diaEnvio", $datos["diaEnvio"], PDO::PARAM_STR);

$stmt->bindParam(":horaEnvio", $datos["horaEnvio"], PDO::PARAM_STR);

$stmt->bindParam(":telefono", $datos["telefono"], PDO::PARAM_INT);

if($stmt->execute()){

return"ok";

}else{

return"error";

}

$stmt->close();

$tmt =null;

}

}

并且我添加了另一个名为" aux.php"的文件,以防它影响导致我的错误。 这是在'ctrCash'函数中发送'purchases.controller.php'参数的方法

if(isset($_POST['usuario'])){

require ('purchases.controller.php');

$arrayCompleto = json_decode($_POST['arrayCompleto'], true);

$usuario = $_POST['usuario'];

$direccion1 = $_POST['direccion1'];

$direccion2 = $_POST['direccion2'];

$dia = $_POST['dia'];

$hora = $_POST['hora'];

$email = $_POST['email'];

$telefono = $_POST['telefono'];

$sesion = $_POST['sesion'];

$payments = new Purchases();

$payments -> ctrCash($arrayCompleto, $usuario, $direccion1, $direccion2, $dia, $hora, $email, $telefono, $sesion);

}

您是否在某个地方包含了模型?

@ Shim-Sao不行。我在另一个名为aux.php的文件(现在将其添加到我的问题的末尾)中所做的唯一一件事情是purchase.controller.php。 我不知道这是否会影响任何事情。 在3分钟内,您将在出版物的末尾看到它。

@ Shim-Sao我已经添加了其他信息

错误是因为未为控制器导入模型。

您可以将其包含在控制器中,这是相同的(在这种情况下)。

if(isset($_POST['usuario'])){

require_once ('purchases.model.php');

require_once ('purchases.controller.php');

...

}

如果我将模型放在您刚刚告诉我的位置,即在aux.php内,则会出现此错误:警告:require(purchases.model.php):无法打开流:内没有此类文件或目录...

不会发生此类文件或目录错误,因为purchase.model.php可能位于其他文件之外的其他目录中。 您必须提供文件的相对或完整路径。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值