Pau*_*nko 4 sql laravel artisan
我想使用工匠更新运行SQL脚本的数据库中的所有记录。例如,我需要执行以下命令:
UPDATE translations SET field = 'meta_desc' WHERE field = 'page_desc'
Run Code Online (Sandbox Code Playgroud)
Laravel的结构将是最佳解决方案?种子,移民,工厂?
感谢大家的答复。特别感谢@RossWilson使用迁移来更改数据库数据的想法。
但是我认为,这不是一个好的解决方案,因为Laravel的概念涉及使用迁移来更改数据库结构。
阅读Laravel的手册后,我发现有一种特殊的代码结构可用于处理db的数据。这是种子。因此,我使用上面的示例查询的下一个种子解决了我的问题:
使用artisan命令创建了新的种子:
php artisan make:seed UpdateTranslationsSeeder
Run Code Online (Sandbox Code Playgroud)在run()方法内编写代码:
DB::table('translations')->where('field', 'page_desc')->update(['field' => 'meta_desc']);
Run Code Online (Sandbox Code Playgroud)在工匠手中运行我的播种机:
php artisan db:seed --class=UpdateTranslationsSeeder
Run Code Online (Sandbox Code Playgroud)注意:如果在控制台中运行最后一个命令后,我对类UpdateTranslationsSeeder的错误未定义,请在控制台中运行下一个命令,以告知Laravel有关新类的信息:
composer dump-autoload -o
Run Code Online (Sandbox Code Playgroud)