同名的PHP CodeIgniter模型
我需要你的帮助,求你了! 我有两个同名的型号 1。。。。application/admin/user/models/user_model.php,代码如下:同名的PHP CodeIgniter模型,php,codeigniter,namespaces,codeigniter-3,Php,Codeigniter,Namespaces,Codeigniter 3,我需要你的帮助,求你了! 我有两个同名的型号 1。。。。application/admin/user/models/user_model.php,代码如下: <?php defined('BASEPATH') OR exit('No direct script access allowed'); class User_model extends CI_Model ?> <?php defined('BASEPATH'
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class User_model extends CI_Model
?>
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class User_model extends CI_Model
?>
从application/front/user/controllers/user.php
,我调用application/admin/user/models/user\u model.php
总是给我一个错误,因为没有加载application/front/user/models/user\u model.php
如果我从application/front/user/models/user\u model.php
中删除名称空间,我的代码将始终进入此模式,而不会进入admin/user/user\u model
。
我需要避免更改admin/user/user\u model.php
,因为很多类都使用这个模型。我只能更改front/user/user\u model.php
但是我需要使用admin/user/user\u模型
我这样调用application/admin/user/models/user_model.php:
$this->load->model('user_model');
$this->load->model('admin/User_model');
$this->load->model('user/User_model2');
我需要加载application/admin/user/models/user\u model.php
请帮帮我!!!!
谢谢!
Ani希望这对您有所帮助
您可以在如下模型中创建子目录:
application/models/admin/User_model.php
application/models/user/User_model2.php
$this->load->model('admin/User_model', 'admin_model');
$this->admin_model->some_method();
$this->load->model('user/User_model2', 'user_model');
$this->user_model->some_method();
按如下方式加载模型:
$this->load->model('user_model');
$this->load->model('admin/User_model');
$this->load->model('user/User_model2');
您应该将模型指定给不同的对象名称。您可以通过加载方法的第二个参数指定该名称:
像这样使用它们:
application/models/admin/User_model.php
application/models/user/User_model2.php
$this->load->model('admin/User_model', 'admin_model');
$this->admin_model->some_method();
$this->load->model('user/User_model2', 'user_model');
$this->user_model->some_method();
更多信息:希望这对您有所帮助
您可以在如下模型中创建子目录:
application/models/admin/User_model.php
application/models/user/User_model2.php
$this->load->model('admin/User_model', 'admin_model');
$this->admin_model->some_method();
$this->load->model('user/User_model2', 'user_model');
$this->user_model->some_method();
按如下方式加载模型:
$this->load->model('user_model');
$this->load->model('admin/User_model');
$this->load->model('user/User_model2');
您应该将模型指定给不同的对象名称。您可以通过加载方法的第二个参数指定该名称:
像这样使用它们:
application/models/admin/User_model.php
application/models/user/User_model2.php
$this->load->model('admin/User_model', 'admin_model');
$this->admin_model->some_method();
$this->load->model('user/User_model2', 'user_model');
$this->user_model->some_method();
更多信息:这根本不可能,因为Codeigniter不支持名称空间 通常您会看到如下错误
Fatal error: Cannot declare class `User_model`, because the name is already in use
但Codeigniter阻止了这一点,因为它不会加载任何已经加载的模型。你可以看到这个
因此,摆脱痛苦的唯一办法就是简单地重命名模型——即使你不想这么做;) 这根本不可能,因为Codeigniter不支持名称空间 通常您会看到如下错误
Fatal error: Cannot declare class `User_model`, because the name is already in use
但Codeigniter阻止了这一点,因为它不会加载任何已经加载的模型。你可以看到这个
因此,摆脱痛苦的唯一办法就是简单地重命名模型——即使你不想这么做;) 请显示您的
config.php
。您可能被配置为从以下位置加载模型:front/user/models
。请显示您的config.php
。您可能被配置为从以下位置加载模型:front/user/models
.imho-这不起作用-如果他使用相同的类名,则只会实例化admin/user\u model
,由于CI不支持名称空间,唯一的解决方法就是重命名该类…imho-这不起作用-如果他使用相同的类名,它只能实例化admin/User\u model
,而由于CI不支持名称空间,唯一的解决方法就是重命名该类。。。