当前位置: 首页 > 知识库问答 >
问题:

Laravel 8自定义帮助函数PHP致命错误:无法重新声明以前在C:(patth)Helpers.PHP中声明的functionName()

吴高洁
2023-03-14

我在App\Helpers.php中有一个自定义函数。在刀片文件中使用if语句中的函数时。我在拉拉贡错误日志中看到错误。

PHP Fatal error:  Cannot redeclare CheckInvalidPlan() (previously declared in C:\laragon\www\projectname\app\Helpers.php:6) in C:\laragon\www\projectname\app\Helpers.php on line 6

然而,事情正如预期的那样。但为什么会出现此错误?我如何修复它?

#更新

这是我在Helpers.php的职能

function CheckInvalidPlan($id)

{

    if (Plan::find($id) == null)
    {
        return true;
    }

}

这是控制器中的if语句。

if (CheckInvalidPlan ($request->plan_id))
        {
            return back()->with('invalid', 'Invalid membership plan spesified.');
        }

共有1个答案

汪翰墨
2023-03-14

通过检查函数是否已存在,可以绕过此错误:

if(! function_exists('CheckInvalidPlan')) {
    function CheckInvalidPlan($id)
    {
        if (Plan::find($id) == null)
        {
            return true;
        }
    }
}

Laravel助手就是这样声明的:

php prettyprint-override">if (! function_exists('today')) {
    /**
     * Create a new Carbon instance for the current date.
     *
     * @param  \DateTimeZone|string|null  $tz
     * @return \Illuminate\Support\Carbon
     */
    function today($tz = null)
    {
        return Date::today($tz);
    }
}

然而,一个更简洁的方法是理解为什么您的helpers文件会被加载两次。

很难准确地告诉你错误可能在哪里,但是你应该检查你所有的类,应用\Helpers.php文件永远不应该手动需要。它应该由作曲家自动加载,如本答案所述(感谢N69S)。

 类似资料:
  • 我知道有很多问题与类似的问题,但我一直在寻找答案,仍然无法找到我的问题。我已经尝试了几种方法来解决这个问题,但我找不到任何解决方案。。。 我代码的一部分:(我不会在其他任何地方使用这个函数) 我得到以下信息: 致命错误:无法在第20行的C:\wamp64\www\myProject-dev\Public\cajas\reposiciones\controller3.php:20中重新声明Valid

  • 问题内容: 有谁知道会导致这个问题的原因吗? PHP致命错误:无法重新声明类 问题答案: 这意味着您已经创建了一个类。 例如: 第二个Foo会抛出错误。

  • 问题内容: 我有一个函数(从文件顶部开始,这就是它的外观): 由于某种原因,我不断收到错误消息: 致命错误:无法在/Applications/MAMP/htdocs/question- air/includes/functions.php中重新声明generate_salt()(先前在/Applications/MAMP/htdocs/question- air/includes/function

  • 致命错误:无法在第9行的E:\wamp1\wamp\www\sample.php中重新声明关闭()(先前在E:\wamp1\wamp\www\sample.php: 1中声明) 当我运行这个脚本时,它说不能在第9行中重新声明近()(以前在第1行中被标记)。 即使出现错误,与和相关的值也会传递给css。我在这里做错了什么?我正在调用第9行中的函数。有什么帮助吗?

  • 问题内容: 我有一个名为parseDate的函数,但是当我在我的php页面(它是一个joomla组件页面)上调用它时,出现致命错误:无法重新声明parsedate()(先前在template / ja_zeolite / assets / functions.php:2中声明)第21行的templates / ja_zeolite / assets / functions.php 第2行是函数pa

  • 当我运行来检查我的事件时 致命错误:无法在C:\xampp\htdocs\myshop\app\Http\helpers.php行92中重新声明视图()(先前在C:\xampp\htdocs\myshop\供应商\laravel\框架\src\Illumate\Foundation\helpers.php:850中声明)PHP致命错误:无法重新声明视图()(先前声明在C:\xampp\htdocs