对于模型中的函数,不存在获取BadMethodCallException的问题,但是方法存在

时间:2019-03-31 12:22:25

标签: laravel

我在Order模型中编写了一个不断出错的方法。

  

方法Illuminate \ Database \ Query \ Builder :: generateOrderCode不存在   存在。

尽管它与另一个方法几乎相同,但是generateCode()是来自不同模型的方法,可以完美地找到以相同方式调用的方法。然后,我制定了一种测试方法,但无法使其正常工作。我将所有模型放在单独的文件夹中,并为其命名空间,这很好。

$order = new Order;
dd($order->testFunction());

然后在OrderController或Tinker中:

composer dumpautoload

给我

  

方法Illuminate \ Database \ Query \ Builder :: testFunction不存在。

我也做了php artisan make:model Order.(如果这样做会有所帮助),甚至删除了该模型,并用$query = Post::withTrashed(); $query = $query->where('id', 1); $query->forceDelete(); 作了一个空白模型

我不明白。

2 个答案:

答案 0 :(得分:0)

您可能有一个错误的类实例。

检查$orderOrder模型的实际实例还是使用instanceof的其他类:

 return ($order instanceof App\Models\Order); //should return true

还要检查使用ReflectionClass及其方法getFileName()从哪个文件定义了您的类:

$refClass = new \ReflectionClass('App\Models\Order');

echo ($refClass->getFileName());

详细了解类型运算符:

https://www.php.net/manual/en/language.operators.type.php

查看有关ReflectionClass的更多信息:

https://www.php.net/manual/en/class.reflectionclass.php

答案 1 :(得分:0)

好吧,我现在觉得很傻。我解决了显然,很久以前,我已经创建了一个Order模型,然后决定不使用它,而只是将其放在另一个文件夹中。它与新创建的Order模型冲突。