我的Codeigniter项目遇到了一个奇怪的问题。
我在以下路径中有两个模型文件:
models/public/Dish_model.php
models/admin/Dish_model.php
分别用于前端和后端型号。
在以下路径中的控制器中:
controllers/admin/Dish.php
我尝试使用以下方法加载管理区域模型文件:
$this->load->model('admin/dish_model');
但它正在加载公共模型文件。
即使我对此行发表评论,公共模型文件仍会被加载。
这一切都突然发生,之前工作正常,我最近没有改变任何提到的文件。
任何帮助?
答案 0 :(得分:2)
如果其他人遇到同样的问题。
在我的情况下,在仔细遵循控制器的执行路径之后,我发现另一个模型是由自动加载列表中的库加载的。
从自动加载阵列中删除该库可解决此问题。
答案 1 :(得分:2)
从其子目录或子文件夹调用/加载模型。
<?php
function clean($name, $max) {
// Remove everything except letters numbers . and @ in the variable
preg_replace("/[^A-Za-z0-9.\-_@]/","",$name);
// Do not allow excessively long entries - length set in function call
// Could use a word wrap here - add a \\n after a certain amount of characters
$name = substr($name, 0, $max);
return $name;
}
// If the form has been submitted do this
if(isset($_FILES['filename']['tmp_name'])) {
// Temporary upload image name
$original_image = $_FILES['filename']['tmp_name'];
// Name to save the image as - in this case the same as the original
// The same folder as the code
$new_image = $_FILES['filename']['name'];
// Cleanup the text.
$text_submitted = clean ( $_POST['text_submitted'], 18 );
// Build the imagemagick command - using rgba so the opacity of the text can be set
$cmd = "$original_image -pointsize 50 -font /var/www/html/static/fonts/arial.ttf -fill rgba\(0,0,0,0.4\) ".
" -gravity center -annotate +0+0 \"$text_submitted\" ";
//save image
// I believe I need to save the file here????
//dl image
header("Content-type: image/jpeg");
header("Content-disposition: attachment; filename=\"".basename($new_image)."\"");
while (ob_get_level()) {
ob_end_clean();
}
readfile($new_image);
// Coment out to display the command - good for debugging
//echo $cmd;
// Setup the array for the error reporting
$array = array();
// The array is to hold any errors you may get
// Coment out the if function after debugging
exec("convert $cmd $new_image 2>&1", $array);
if ( !empty($array) ){
echo "<br >There were some errors during the Imagemagick conversion:<br >
<pre><br >".print_r($array)."<br>";
echo "</pre>";
}
}
else {
?>
让我们在models/public/Dish_model.php
Dish_model
class Dish_model extends CI_Model{
public function __construct(){
parent::__construct();
}
public function the_method(){
return 'return value';
}
}
它是原生ci模型目录,models
它是一个子目录。所以加载public
在控制器上执行此操作
Dish_model
$this->load->model('public/Dish_model','DModel');
它就像一个别名。
所以从控制器调用模型是
DModel
它将返回echo $this->DModel->the_method();
希望得到它的帮助。