Laravel模型的自定义方法BadMethodCallException - 尝试使用workbench文件夹的供应商文件?

时间:2015-02-03 14:18:50

标签: php laravel laravel-4 eloquent

我在模型文件中添加自定义方法时遇到了一个奇怪的错误,就像我经常做的那样。从路线文件中我查询了模型,但未找到"方法" - 从错误日志中可以看出,Laravel正在使用workbench文件夹下的供应商文件,即使该工作台包与此代码无关。

Route::get('/test', function () {
    $obj = MyModel::where('id', 1111)->get()->first();
    return $obj->toCustomFormat();
});


[2015-02-03 16:08:08] development.ERROR: exception 'BadMethodCallException' with message 'Call to undefined method Illuminate\Database\Query\Builder::toCustomFormat()' in /var/www/project/workbench/envision/mypackage/vendor/illuminate/database/Illuminate/Database/Query/Builder.php:2117
Stack trace:
#0 [internal function]: Illuminate\Database\Query\Builder->__call('toCustomForm...', Array)
#1 [internal function]: Illuminate\Database\Query\Builder->toCustomFormat()
#2 /var/www/project/workbench/envision/mypackage/vendor/illuminate/database/Illuminate/Database/Eloquent/Builder.php(913): call_user_func_array(Array, Array)
#3 [internal function]: Illuminate\Database\Eloquent\Builder->__call('toCustomForm...', Array)
#4 [internal function]: Illuminate\Database\Eloquent\Builder->toCustomFormat()
#5 /var/www/project/bootstrap/compiled.php(7459): call_user_func_array(Array, Array)
#6 /var/www/project/app/routes.php(12): Illuminate\Database\Eloquent\Model->__call('toCustomForm...', Array)
#7 /var/www/project/app/routes.php(12): MyModel->toCustomFormat()
#8 [internal function]: {closure}()
项目根目录下的工匠转储没有帮助。你是怎么做到的?

更新:

该模型的自定义方法是:

public function toCustomFormat() {
    $this->to       = date(DateTime::ISO8601, strtotime($this->to));
    $this->from     = date(DateTime::ISO8601, strtotime($this->from));
    return $this->toArray();
}

1 个答案:

答案 0 :(得分:0)

问题是通过FTP保存文件混淆了。所以该方法不在模型的文件中。

然而,看到Laravel试图在workbench的文件夹中找到该方法是有误导性的,该文件夹中有另一个供应商文件夹。当Laravel在模型文件夹中找不到它时,可能会尝试升级搜索该位置下丢失的方法。