我有以下功能:
protected function schedule(Schedule $schedule)
{
$schedule->command('email:users')->everyMinute();
}
Run Code Online (Sandbox Code Playgroud)
当我运行命令时
artisan schedule:run
Run Code Online (Sandbox Code Playgroud)
它会发送一封电子邮件,但是当我将以下命令作为 cron 作业添加到 cpanel 时,它不会发送任何电子邮件。Cpanel 假设在运行 cron 作业时通过电子邮件向我发送通知,但我没有收到一封电子邮件。
php /home/rain/artisan schedule:run 1>> /dev/null 2>&1
我哪里做错了?
此外,当我运行命令时,artisan schedule:run它只运行一次。我很好奇,->everyMinute();如果不是每分钟都运行一次,为什么我必须添加?如果我想每周发送一次,我可以设置 cron 作业。->weekly();如果 cron 作业每周发送它,为什么我必须编写添加函数?
我的迁移失败了,所以我只是在 MySQL Workbench 中手动运行了一个查询。
是否有工匠命令将迁移标记为完成?因此,当我运行未来的迁移时,它会跳过我知道不需要运行的迁移。
我可以使用此命令列出它们及其状态,并查看哪些已运行,哪些未运行:
php artisan migrate:status
Run Code Online (Sandbox Code Playgroud)
如果没有命令,我可能可以手动将条目插入到数据库迁移表中。(但目前没有迁移:P)
我想我也可以...删除迁移。
安装新的 Laravel 应用程序 5.7 并尝试迁移后,出现此错误:
Illuminate\Database\QueryException : SQLSTATE[HY000] [2054] 服务器请求客户端未知的身份验证方法(SQL:select * from information_schema.tables where table_schema = xxx_db and table_name = migrations)
在 C:\xampp\htdocs\xxxxx\vendor\laravel\framework\src\Illuminate\Database\Connection.php:664 660| // 如果尝试运行查询时发生异常,我们将格式化错误 661| // 包含与 SQL 的绑定的消息,这将使此异常成为 662| // 对开发人员更有帮助,而不仅仅是数据库的错误。663| 捕获(异常 $e){
664| throw new QueryException(665| $query, $this->prepareBindings($bindings), $e 666|); 667| 第668话
异常跟踪:
1 PDOException::("PDO::__construct(): 服务器请求了客户端未知的身份验证方法 [caching_sha2_password]") C:\xampp\htdocs\xxxxx\vendor\laravel\framework\src\Illuminate\Database\Connectors\连接器.php:70
2 PDO::__construct("mysql:host=127.0.0.1;port=3306;dbname=xxx_db", "root", "**********", []) C:\xampp\htdocs \xxxxx\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70
请使用参数 -v 查看更多详细信息。
我将 Laravel 5.5 与laravel-modules v2 一起使用。
在自定义目录中(特别是在模块内)生成迁移很容易:
php artisan make:migration create_users_table --path=Modules/User/Database/Migrations
Run Code Online (Sandbox Code Playgroud)
但似乎这对于播种课程是不可能的:
php artisan make:seeder UsersTableSeeder --path=Modules/User/Database/
Run Code Online (Sandbox Code Playgroud)
“--path”选项不存在。
或传递完整的相对路径:
php artisan make:seeder Modules/User/Database/Migrations/UsersTableSeeder
Run Code Online (Sandbox Code Playgroud)
在./database/seeds/ 中创建这个完全相同的文件夹结构
或传递完整的绝对路径:
php artisan make:seeder /Modules/User/Database/Migrations/UsersTableSeeder
Run Code Online (Sandbox Code Playgroud)
file_put_contents(\my\file\system\project\database/seeds/C:/Program Files/Git /Modules/User/Database/Seeders/UsersTableSeeder.php):无法打开流:没有这样的文件或目录
如何在自定义目录中使用 artisan 命令生成播种机?
我现在已经搜索了几个小时,但即使有类似的问题也找不到解决方案。
我正在尝试php artisan tinker使用用户webmaster(项目目录的所有者demo)在全新的 laravel 安装上运行,但出现以下错误:
In Configuration.php line 352:
mkdir(): Permission denied
Run Code Online (Sandbox Code Playgroud)
使用详细标志运行:
异常跟踪:Illuminate\Foundation\Bootstrap\HandleExceptions->handleError() at n/a:n/a mkdir() at /media/usb/drive1/websites/demo/vendor/psy/psysh/src/Psy/Configuration。 php:352 Psy\Configuration->getRuntimeDir() at /media/usb/drive1/websites/demo/vendor/psy/psysh/src/Psy/Shell.php:185 Psy\Shell->getDefaultCommands() at /media/ usb/drive1/websites/demo/vendor/symfony/console/Application.php:1211 Symfony\Component\Console\Application->init() 在 /media/usb/drive1/websites/demo/vendor/symfony/console/Application .php:435 Symfony\Component\Console\Application->add() 在 /media/usb/drive1/websites/demo/vendor/psy/psysh/src/Psy/Shell.php:134 Psy\Shell->add( ) 在 /media/usb/drive1/websites/demo/vendor/symfony/console/Application.php:421 Symfony\Component\Console\Application->addCommands() 在 /media/usb/drive1/websites/demo/vendor/laravel/tinker/src/Console/TinkerCommand.php:54 Laravel\Tinker\Console\TinkerCommand->handle() 在 n/a:n/a call_user_func_array() 在 /media/usb/drive1/websites/demo/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:29 Illuminate\Container\BoundMethod::Illuminate\Container{closure}() 在 /media /usb/drive1/websites/demo/vendor/laravel/framework/src/Illuminate/Container/ BoundMethod.php:87 Illuminate\Container\BoundMethod::callBoundMethod() 在 /media/usb/drive1/websites/demo/vendor/ laravel/framework/src/Illuminate/Container/BoundMethod.php:31 Illuminate\Container\BoundMethod::call() 在 /media/usb/drive1/websites/demo/vendor/laravel/framework/src/Illuminate/Container/Container .php:549 Illuminate\Container\Container->call() 在 /media/usb/drive1/websites/demo/vendor/laravel/framework/src/Illuminate/Console/Command.php:183 Illuminate\Console\Command->execute() 在 /media/usb/drive1/网站/演示/供应商/symfony/console/Command/Command.php:252 Symfony\Component\Console\Command\Command->run() 在 /media/usb/drive1/websites/demo/vendor/laravel/framework/src /Illuminate/Console/Command.php:170 Illuminate\Console\Command->run() 在 /media/usb/drive1/websites/demo/vendor/symfony/console/Application.php:938 …
在 Laravel 中运行迁移时出现错误:
PHP 致命错误:无法声明类 UpdateEnquiriesTable,因为该名称已在第 33 行的 /var/www/project/database/migrations/2018_01_17_160335_update_enquiries_table.php 中使用
做了一些研究后,我发现每个迁移文件都需要一个唯一的类名(我不记得之前提到过,但那可能是我)。
根据另一个问题,建议更改其中一个类的名称。
但是其他人建议删除冲突的迁移。
哪个是首选?假设两者都有效。
如何将 Eloquent 查询的结果存储到 tinker 中的变量,而不将结果打印到控制台?
例如,当我运行时,$threads = App\Thread::all()我只想将结果存储在变量中$threads而不查看所有线程。修补匠中有类似“安静模式”的东西吗?
我可以使用以下命令获取第一个用户,他是 Laravel tinker 的管理员:
$adminUser = App\User::where('is_admin',true)->first();
我如何获得满足此条件的所有用户?
尝试运行php artisan queue:work会返回此错误:
ErrorException : pcntl_signal() has been disabled for security reasons
Run Code Online (Sandbox Code Playgroud)
已经pcntl_signal, pcntl_signal_dispatch从php.ini中的disable_functions中删除并重新启动,但没有效果

这是我的 Laravel 5.3 开发环境
我正在测试预定的电子邮件并运行:
php artisan schedule:run
Run Code Online (Sandbox Code Playgroud)
这工作正常并且正在按预期发送电子邮件。
但我实际上希望在 crontab 文件中包含此内容:
* * * * * php /home/test/website/artisan schedule:run >> /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
自从我在 crontab 文件中添加该行后,我收到了两封电子邮件。我删除了该行,所以现在只收到一封电子邮件。
但现在我想反转/撤消/停止/终止 php artisan Schedule:run 以便我可以从 crontab 文件控制计划。
我看到这篇文章:停止 Laravel 计划命令一旦启动?
但接受的答案( ps -fe | grep artisan 和 Kill PID )对我来说不起作用,因为我收到消息:
kill: (PID) - No such process
Run Code Online (Sandbox Code Playgroud)
每次我跑步
ps -fe | grep artisan
Run Code Online (Sandbox Code Playgroud)
它似乎有一个不同的 PID - 不知道我在这方面做错了什么。
我也停止了我的流浪盒,但这似乎没有任何效果。
任何建议都会很棒!
更新:以防万一将来我碰巧遇到同样的问题并再次偶然发现这个帖子 - 我无法解决这个问题,并且已经决定不再值得花更多时间来解决它 - 将忍受现在就这样吧。通过从 crontab 中删除该行,我只收到一封电子邮件,所以现在一切都很好。
laravel-artisan ×10
laravel ×9
php ×6
laravel-5 ×2
tinker ×2
cpanel ×1
cron ×1
laravel-5.5 ×1
migrate ×1
mysql ×1
permissions ×1
queue ×1
schedule ×1