【问题标题】:In Laravel 5.3.30 artisan command not working在 Laravel 5.3.30 中,工匠命令不起作用
【发布时间】:2017-06-21 11:05:07
【问题描述】:

wills,我在 app(又名项目)目录中。工匠文件在我所在的目录中。

下一步...如果我运行以下命令,我会得到输出(可用命令的列表):

php工匠列表

但是如果我运行这个命令(故意遗漏一个必需的参数),我不会得到任何错误,尽管我希望有一个:

php 工匠制作:命令

artisan 似乎对其配置不满意,因为这个故意不完整的命令会导致:无输出。

我尝试过的事情

  • storage/logs/laravel.log 中没有任何内容
  • find -L ./ -name '*.php' -print0 | xargs -0 -n 1 -P 4 php -l | grep "Errors parsing" 命令未发现有语法错误的文件
  • composer update
  • composer install
  • php artisan optimize

请提供会导致php artisan bad:command 投诉的解决方案。

【问题讨论】:

  • Http 控制器仅用于 http 请求。您应该使用signature 创建一个工匠命令,例如mycommand,然后将其添加到Kernel.php 并使用php artisan mycommand 启动。
  • 对,但是 make:command 不起作用。
  • 很难提供解决方案,这不是功能。是个人调试,需要用到。
  • 有没有办法在不丢失我们配置的代码的情况下重建项目和工匠?
  • 有没有可能制作一个副本并使用它?

标签: laravel-5 phpunit laravel-artisan


【解决方案1】:

解决办法是:
使用

php artisan migrate 

而不是

php artinsa make:migration

当出现上述错误时,是因为已经创建了迁移。

编辑:删除了答案的葡萄牙语翻译。

【讨论】:

    【解决方案2】:

    首先。 php artisan make:command Mycommand

    第二。 nano app/Console/Commands/Mycommand.php 并设置protected $signature = 'mycommand';

    第三。在文件中编码你的逻辑:

    public function handle()
    {
        $this->info('place your logic here');
    }
    

    第四。将命令添加到app/Console/Kernel.php

    protected $commands = [
        Commands\Mycommand::class
    ];
    

    检查:$ php artisan mycommand 输出 place your logic here

    时间表:编辑相同的Kernel.php 文件

    protected function schedule(Schedule $schedule)
    {
        $schedule->command('mycommand')
                 ->dailyAt('02:00')
                 ->appendOutputTo('./mycommand.log')
                 ->withoutOverlapping();;
    }
    

    它按预期工作。

    $ php artisan make:command           
    
      [Symfony\Component\Console\Exception\RuntimeException]
      Not enough arguments (missing: "name").
    
    $ php artisan --version              
     Laravel Framework version 5.3.30
    

    【讨论】:

    • 关键是工匠有问题。我故意省略命令名称,因为它应该引发错误。我只是发现了这一点,因为使用所需的命令名称参数没有任何结果,因此我将其作为故障排除工作将其删除,并发现工匠生病了。它应该抛出一个错误..它有什么问题?
    • 顺便说一句,我不是纳米哟。
    • 我已经更新了我的答案。我的工匠按预期回答。发布您的回复。
    • 是的,就是这个问题,没有回应。我可以获取列表和版​​本,但除此之外它似乎已禁用。
    • 祝您调试愉快,有 vi 和咖啡。尝试从 composer.json 中删除需求,然后用composer update 将它们一一添加。我想其中一个打破了工匠。
    猜你喜欢
    • 2013-09-25
    • 2015-09-24
    • 2013-02-05
    • 2019-06-19
    • 2016-12-10
    • 2021-11-04
    • 2014-08-30
    • 2019-03-05
    • 2017-11-12
    相关资源
    最近更新 更多