【发布时间】:2014-01-23 13:52:32
【问题描述】:
编辑:添加了我的模型的命名空间部分。
我有一个有效的自定义 Artisan 命令,但是一旦我开始插入我创建的模型,我就会立即收到错误消息。
<?php namespace App\Command;
use App\Models\Samplemodel;
public function fire()
{
$name = $this->argument('name');
// This next line won't work
$age = Samplemodel::get_age($this->option('bday')); // Line 42
$this->line("My name is {$name} and my age is {$age}.");
}
我总是遇到错误:
{"error":{"type":"Symfony\\Component\\Debug\\Exception\\FatalErrorException","message":"Class 'App\\Models\\Samplemodel' not found","fi
le":"X:\\xampp\\htdocs\\laralabs\\laralabs.app\\app\\commands\\SampleCommand.php","line":42}}{"error":{"type":"Symfony\\Component\\De
bug\\Exception\\FatalErrorException","message":"Class 'App\\Models\\Samplemodel' not found","file":"X:\\xampp\\htdocs\\laralabs\\larala
bs.app\\app\\commands\\SampleCommand.php","line":42}}
我从这个示例代码中删除了其他方法以保持干净。基本上就是这样,是不是意味着我在创建自定义 Artisan 命令时不能使用模型?
根据要求,我的模型的前几行:
<?php namespace App\Models;
use DB;
use Config;
use Eloquent;
use DateTime;
class Helper extends Eloquent { ... }
我的模型的实际名称是Helper。这个类没有任何属性只有方法。
【问题讨论】:
-
您是否将命令添加到 composer 自动加载器?还是手动创建?
-
我在文档中使用了
php artisan command:make SampleCommand。只有当我插入Samplemodel的使用时才会出现错误。如果没有模型,它可以正常工作。 -
你的模型命名空间是
App\Models吗?不写use行怎么样,有帮助吗?请显示您的模型文件内容。 -
请向我们展示您的 Samplemodel 代码。
-
@Vlakarados,是的,我的模型命名为
App\Models。 @Antonio,实际模型很长(并且正在使用,所以它工作得很好)这就是为什么我制作了一个你现在看到的样本。让我进行更多测试...