-
創(chuàng)建新數(shù)據(jù)表
查看全部 -
介紹:
laravel隊(duì)列服務(wù)為各種不同的后臺(tái)隊(duì)列提供了統(tǒng)一的API
允許推遲耗時(shí)任務(wù)(例如郵件發(fā)送)的執(zhí)行,從而大幅提高web請求速度
主要步驟:
1、遷移隊(duì)列需要的數(shù)據(jù)表
2、編寫任務(wù)類
3、推送任務(wù)到隊(duì)列
4、運(yùn)行隊(duì)列監(jiān)聽
5、處理失敗任務(wù)
配置文件在config/queue.php
修改.env文件QUEUE_DRIVER=database? 改為數(shù)據(jù)庫驅(qū)動(dòng)
1、生成遷移隊(duì)列需要的數(shù)據(jù)表
? php artisan queue:table (創(chuàng)建了遷移文件job,而且里面已經(jīng)有了表的結(jié)構(gòu))
? php artisan migrate? (生成了jobs)
2、編寫任務(wù)類(樣例是要做個(gè)郵件發(fā)送任務(wù))
? php artisan make:job SendEmail (在app文件夾下生成了Jobs文件夾,里面有SendEmail.php文件)
這樣一個(gè)任務(wù)類就寫完了
3、推送任務(wù)到隊(duì)列中
一調(diào)用這個(gè)queue()這個(gè)方法,數(shù)據(jù)庫jobs表就多了一條記錄,這個(gè)記錄就是我們的任務(wù),也就是所謂的隊(duì)列
我們已經(jīng)把任務(wù)推送到隊(duì)列中了,但是還沒有執(zhí)行
4、運(yùn)行隊(duì)列監(jiān)聽器
php artisan queue:listen
(報(bào)錯(cuò)了,其實(shí)沒問題,只是測試多了163郵箱給屏蔽了,于是改了SendEmail.php文件)
再次訪問了控制器,就是重新推送一個(gè)任務(wù)大到隊(duì)列中
日志文件中也多了一條記錄。這樣隊(duì)列就已經(jīng)成功了
5、處理失敗任務(wù)
任務(wù)執(zhí)行失敗會(huì)保存到一個(gè)表,但是那個(gè)表還沒有創(chuàng)建,這個(gè)表在php artisan list的queue下面可以看到
php artisan queue:failed-table
php artisan migrate
php artisan queue:failed 查看執(zhí)行錯(cuò)誤的隊(duì)列
php artisan queue:retry 1? 重新執(zhí)行失敗的隊(duì)列,try后面跟的是id
php artisan queue:retry all 重新執(zhí)行所有的錯(cuò)誤隊(duì)列
錯(cuò)誤的隊(duì)列再次執(zhí)行在failed_jobs表里id會(huì)變(應(yīng)該是自增)
查看執(zhí)行錯(cuò)誤的隊(duì)列php artisan queue:failed? (也可以在數(shù)據(jù)庫查看)
php artisan queue:forget 4 刪除那條記錄
php artisan queue:flush 刪除所有的錯(cuò)誤記錄
查看全部 -
Debug模式? HTTP異常? 日志
Debug模式
????配置:config.php
? ? 進(jìn)行本地開發(fā)時(shí),應(yīng)該配置APP_DEUG環(huán)境變量為true,在上線環(huán)境,這個(gè)值應(yīng)該永遠(yuǎn)為false
?看debug模式是否開啟,config.app.php 里面的debug方法,結(jié)果還是到.env文件下看app_debug=true;關(guān)閉改為false
HTTP異常:就是給resources/views/errors下面添加比如403.blade.php這樣和錯(cuò)誤對應(yīng)的模板
日志:
在 .env文件添加APP_LOG=single
就運(yùn)行了一下這三個(gè)函數(shù),日志文件在storage/logs文件夾下。如果改為daily,那么日志每天生成一個(gè),文件名包含當(dāng)天日期
查看全部 -
就是將幾個(gè)緩存常用函數(shù)運(yùn)行看了一下,默認(rèn)的是文件緩存,在storage/framework/cache下
添加緩存: put() add()? 有返回值bool? ?forever()
獲取緩存:get() pull()獲取了會(huì)刪掉
刪除緩存:forget()
查看全部 -
需要修改配置文件:config/mail.php和.env文件
查看全部 -
配置 config/filesystem.php? (在控制器里面的系統(tǒng)函數(shù)不用死記硬背,有提示的)
$bool = Storage::disk('uploads')->put($file,$file_get_contents($realPath))
查看全部 -
php artisan make:seed UserTableSeeder
在app/database/seeds/StudentTableSeeder.php
的run()方法中添加DB::table("Student")->insert([......數(shù)據(jù)]);
①執(zhí)行數(shù)據(jù)填充php artisan db:seed --class StudentTableSeeder
或者②在DatabaseSeeder.php的run方法里面添加 $this->call(StudentTableSeeder::class);
然后執(zhí)行php artisan db:seed
查看全部 -
php ?artisan (list) 查看用法列表
?php artisan ?make:{type} ?{name} 創(chuàng)建類文件
?php artisan ?make:auth ? ? 創(chuàng)建登錄注冊?
php artisan ?migrate ? ? ? ?生成用戶表
查看全部 -
composer的使用
查看全部 -
包管理器
Java Maven
NodeJS NPM
PHP Pear
查看全部 -
php?artisan?make:controller?StudnetController
查看全部 -
執(zhí)行 php artisan migrate 命令時(shí)出現(xiàn):
QLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max
key length is 1000 bytes...錯(cuò)誤
解決辦法:在app/Providers/AppServiceProvider中的public function boot()方法添加
Schema::defaultStringLength(191);
即可
查看全部 -
Laravel執(zhí)行seeder命令出現(xiàn) Class StudentTableSeeder does not exist.
解決辦法:在控制臺(tái)中執(zhí)行`composer dump-autoload`,然后再執(zhí)行`php artisan db:seed`命令.
查看全部 -
Phpstudy運(yùn)行Laravel5.8項(xiàng)目 報(bào)500錯(cuò)誤 。最后查看日志是:No application encryption key has been specified。查看目錄文件后發(fā)現(xiàn)少了.env和.env.example文件。于是拷貝了Laravel5.6的這兩個(gè)文件,問題完美解決。
查看全部 -
form表單需要加上:enctype="multipart/form-data"屬性
查看全部
舉報(bào)