我做了一个用于训练的MVC框架,我得到了这个错误并且我不确定我的函数出了什么问题。
当我打开如下链接:http://mvctrav.com/posts/show/6时,它会显示文章,但当删除id时,它会显示错误:http://mvctrav.com/posts/show/6
我的错误如下所示:
Fatal error: Uncaught ArgumentCountError: Too few arguments to function Posts::show(), 0 passed in C:\xampp\htdocs\trav\app\libraries\Core.php on line 51 and exactly 1 expected in C:\xampp\htdocs\trav\app\controllers\Posts.php:124 Stack trace: #0 C:\xampp\htdocs\trav\app\libraries\Core.php(51): Posts->show() #1 C:\xampp\htdocs\trav\public\index.php(4): Core->__construct() #2 {main} thrown in C:\xampp\htdocs\trav\app\controllers\Posts.php on line 124
而我的职能是:
public function show($id)
{
$post = $this->postModel->getPostById($id);
$user = $this->userModel->getUserById($post->user_id);
$data = [
'post' => $post,
'user' => $user
];
$this->view('posts/show', $data);
}
这是我的核心类:
<?php
class Core
{
protected $currentController = 'Pages';
protected $currentMethod = 'index';
protected $params = [];
public function __construct()
{
//print_r($this->getUrl());
$url = $this->getUrl();
// Look in controllers for first value
if (file_exists('../app/controllers/' . ucwords($url[0]) . '.php')) {
// If exists, set as controller
$this->currentController = ucwords($url[0]);
// Unset 0 Index
unset($url[0]);
}
// Require the controller
require_once '../app/controllers/' . $this->currentController . '.php';
// Instantiate controller class
$this->currentController = new $this->currentController;
// Check for second part of url
if (isset($url[1])) {
// Check to see if method exists in controller
if (method_exists($this->currentController, $url[1])) {
$this->currentMethod = $url[1];
// Unset 1 index
unset($url[1]);
}
}
// Get params
$this->params = $url ? array_values($url) : [];
// Call a callback with array of params
call_user_func_array([$this->currentController, $this->currentMethod], $this->params);
}
public function getUrl()
{
$url = isset($_GET['url']) ? $_GET['url'] : "/";
$url = filter_var(trim($url, "/"), FILTER_SANITIZE_URL);
$url = explode('/', $url);
return $url;
}
}
我的问题是:链接http://mvctrav.com/posts/show找不到或重定向到特定页面而不是显示错误,谢谢你的努力帮助!
1-这个错误意味着您没有将参数传递给您调用它的函数。您案例中邮件的id。您应该在视图页中解释您的代码
2-生成404页的方法是使用http_response_code:
<?php
http_response_code(404);
include('my_404.php'); // provide your own HTML for the error page
die();
die()并不是严格必需的,但它确保您不继续正常的执行。
对于2,您可以看到如何在PHP中创建错误404?
我知道有一些与此相关的问题,但是有c或其他语言。我得到了这个错误,我不确定我的功能出了什么问题。这是我的错误 致命错误:Uncaught ArgumentCounter错误:函数Admincategory::deletecategory()的参数太少,在F:\xampp\htdocs\digikalamvc\core\app中传递了0。php位于第34行,在F:\xampp\htdocs\digi
当我的WooCommerce购物车页面为空时,我会在页面上出现此错误,我如何消除此错误消息? 致命错误:未捕获的ArgumentCountError:参数太少,无法执行wc_get_page_id(),0在第30行 /home/s3morder/public_html/wp-content/themes/Intranet主题/伍兹商业/购物车/cart-empty.php中传递,而在 /home/
我得到以下错误: 致命错误:Uncaught ArgumentCounter错误:参数太少,无法使用wpdb::prepare()函数,第635行的/home/admin/public_html/ocarinatab.com/wp-content/plugins/ocarina-tabs/ocarina-tabs.php中传递了1个,在/home/admin/public_html/ocarina
我得到这个错误。我创建了一个按钮来更新表。当我点击按钮时,我得到一个错误。如何修复它? 致命错误:Uncaught ArgumentCounter错误:函数personel::update_form(),0的参数太少,在C:\xampp\htdocs\warehouse\panel\system\core\CodeIgniter中传递。php在第360行,C:\xampp\htdocs\wareh
我得到以下错误: 致命错误:Uncaught ArgumentCounter错误:函数wpdb::prepare()的参数太少,1传入/homepages/39/d740877019/htdocs/test/wp content/themes/eduma/formulaire_get。php位于第108行,在/homepages/39/d740877019/htdocs/test/wp inclu
我正在使用CodeIgniter 3制作新闻编辑功能,这里还有一个图像编辑功能 但有如下错误:, 遇到未捕获的异常类型: ArgumentCountError 消息:函数运算符::edit_berita()的参数太少,在D:\xampp\htdocs\ui desa\system\core\CodeIgniter中传递了0。php在第532行,预期正好为1 文件名:D:\xampp\htdocs\