- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道有一些与此相关的问题,但是有c++或其他语言。我收到此错误,但不确定我的功能出了什么问题。这是我的错误
Fatal error: Uncaught ArgumentCountError: Too few arguments to function Admincategory::deletecategory(), 0 passed in F:\xampp\htdocs\digikalamvc\core\app.php on line 34 and exactly 1 expected in F:\xampp\htdocs\digikalamvc\controllers\admincategory.php:50 Stack trace: #0 F:\xampp\htdocs\digikalamvc\core\app.php(34): Admincategory->deletecategory() #1 F:\xampp\htdocs\digikalamvc\index.php(6): App->__construct() #2 {main} thrown in F:\xampp\htdocs\digikalamvc\controllers\admincategory.php on line 50
我的功能是:
<?php
class Admincategory extends Controller
{
function __construct()
{
parent::__construct();
}
function index()
{
$category = $this->model->getChildren(0);
$data = ['category' => $category];
$this->view('admin/category/index', $data);
}
function showchildren($idcategory)
{
$categoryInfo = $this->model->categoryInfo($idcategory);
$children = $this->model->getChildren($idcategory);
$parents = $this->model->getParents($idcategory);
$data = ['categoryInfo' => $categoryInfo, 'category' => $children, 'parents' => $parents];
$this->view('admin/category/index', $data);
}
function addcategory($categoryId = 0, $edit = '')
{
if (isset($_POST['title'])) {
$title = $_POST['title'];
$parent = $_POST['parent'];
$this->model->addCategory($title, $parent, $edit, $categoryId);
}
$category = $this->model->getCategory();
$categoryInfo = $this->model->categoryInfo($categoryId);
$data = ['category' => $category, 'parentId' => $categoryId, 'edit' => $edit, 'categoryInfo' => $categoryInfo];
$this->view('admin/category/addcategory', $data);
}
function deletecategory($parentId)
{
$ids = $_POST['id'];
$this->model->deletecategory($ids);
header('location:'.URL.'admincategory/showchildren/'.$parentId);
}
}
?>
<小时/>
app.php 文件
<小时/><?php
class App
{
public $controller = 'index';
public $method = 'index';
public $params = [];
function __construct()
{
if (isset($_GET['url'])){
$url = $_GET['url'];
$url = $this->parseUrl($url);
$this->controller = $url[0];
unset($url[0]);
if (isset($url[1])){
$this->method = $url[1];
unset($url[1]);
}
$this->params = array_values($url);
}
$controllerUrl = 'controllers/' . $this->controller . '.php';
if (file_exists($controllerUrl)) {
require($controllerUrl);
$object = new $this->controller;
$object->model($this->controller);
if (method_exists($object, $this->method)) {
call_user_func_array([$object, $this->method], $this->params);
}
}
}
function parseUrl($url)
{
$url = filter_var($url, FILTER_SANITIZE_URL);
$url=rtrim($url,'/');
$url = explode('/', $url);
return $url;
}
}
?>
<小时/>
和index.php
<小时/><?php
require('views/admin/layout.php');
$category = $data['category'];
$categoryInfo = [];
if (isset($data['categoryInfo'])) {
$categoryInfo = $data['categoryInfo'];
}
$parents = [];
if (isset($data['parents'])) {
$parents = $data['parents'];
$parents = array_reverse($parents);
}
?>
<style>
.w400 {
width: 600px;
}
</style>
<div class="left">
<p class="title">
مدیریت دسته ها
(
<?php foreach ($parents as $row) { ?>
<a href="admincategory/showchildren/<?= $row['id']; ?>">
<?= $row['title']; ?>
</a>
-
<?php } ?>
<a href="admincategory/<?php if (isset($categoryInfo['id'])) {
echo 'showchildren/' . $categoryInfo['id'];
} else {
echo 'index';
} ?>">
<?php
if (isset($categoryInfo['title'])) {
echo $categoryInfo['title'];
} else {
echo 'دسته های اصلی';
}
?>
</a>
)
</p>
<a class="btn_green_small" href="admincategory/addcategory/<?= @$categoryInfo['id']; ?>">
افزودن
</a>
<a class="btn_red_small" onclick="submitForm();">
حذف
</a>
<form action="admincategory/deletecategory/<?= @$categoryInfo['id']; ?>" method="post">
<table class="list" cellspacing="0">
<tr>
<td>
ردیف
</td>
<td>
عنوان دسته
</td>
<td>
مشاهده زیر دسته ها
</td>
<td>
ویرایش
</td>
<td>
انتخاب
</td>
</tr>
<?php
foreach ($category as $row) {
?>
<tr>
<td>
<?= $row['id']; ?>
</td>
<td class="w400">
<?= $row['title']; ?>
</td>
<td>
<a href="admincategory/showchildren/<?= $row['id']; ?>">
<img src="public/images/view_icon.png" class="view">
</a>
</td>
<td>
<a href="admincategory/addcategory/<?= $row['id']; ?>/edit">
<img src="public/images/edit_icon.ico" class="view">
</a>
</td>
<td>
<input type="checkbox" name="id[]" value="<?= $row['id']; ?>">
</td>
</tr>
<?php } ?>
</table>
</form>
</div>
</div>
<小时/><小时/>
============
感谢您的帮助!
最佳答案
有时会发生这样的情况:在没有参数的情况下调用 AdminCategory::deletecategory($parentId) 但原型(prototype)没有默认值,因此会引发异常。由于您从发布请求中获取数据,并且类别总是有可能没有父级,因此您可以将您的方法重构为如下所示:
function deletecategory($parentId = null)
{
$ids = $_POST['id'];
$this->model->deletecategory($ids);
if (null !== $parentId) {
header('location:'.URL.'admincategory/showchildren/'.$parentId);
}
// PUT MORE OF YOUR LOGIC HERE, I DO NOT KNOW WHAT SHOULD HAPPEN
}
如果您使用输入提示,更合适的方法是使方法看起来像
function deletecategory(string $parentId = ''): void //void is for php7.1
{
$ids = $_POST['id'];
$this->model->deletecategory($ids);
if ('' !== $parentId) {
header('location:'.URL.'admincategory/showchildren/'.$parentId);
}
// AGAIN LOGIC HERE
}
如果您确实希望必须传递parentId,那么请使用try catch 包装方法调用者
if (method_exists($object, $this->method)) {
try {
call_user_func_array([$object, $this->method], $this->params);
} catch (\Exception $ex) {
// HANDLE EXCEPTION HERE
}
}
关于php - fatal error :未捕获的 ArgumentCountError:函数 Admincategory::deletecategory() 的参数太少,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47108428/
我正在尝试将之前使用 serial->write... 函数从 GUI 读取的 7 个变量发送到我的微 Controller 。 我在我的微 Controller 上写了一个小程序,如果有输入,它就会
我正在通过制作一个通用的 List 来学习继承类(class)。 List可以是 Unordered列表,Ordered列表,一个 Stack , 或 Queue . 我的 List类看起来像这样:
我必须使用非科学(即无尾数/指数/E)字符串转换十进制数。我的代码如下所示: /*! \brief Converts a XML Schema Decimal */ char *ToDecimal(d
private static void Main(string[] args) { for (;;) { TemporaryCityTool.TemporaryCity
我在 YARN 集群 (HDP 2.4) 中使用 Spark,设置如下: 1 个主节点 64 GB RAM(50 GB 可用) 24 核(19 核可用) 5个从节点 每个 64 GB RAM(50 G
这是我使用 powershell 脚本的第一天我正在尝试使用 VMM Cmdlet Get-SCVirtualMachine当我像 这样使用它时它工作正常 PS C:\> $VM = Get-SCVi
我决定在 RubyMine 7.1.4 中使用远程 Ruby SDK。 设置了 Vagrant 机器( hashicorp/precise32 ),RVM、Ruby 2.2.1p85(2015-02-
我在 sklearn 上使用 Xgboost 实现进行 kaggle 竞赛。但是,我收到此“警告”消息: $ python Script1.py /home/sky/private/virtualen
我是一名优秀的程序员,十分优秀!