溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Laravel高級(jí)

發(fā)布時(shí)間:2020-03-02 07:08:43 來源:網(wǎng)絡(luò) 閱讀:314 作者:iuiuiuuiiu 欄目:web開發(fā)

1、Artisan控制臺(tái): 創(chuàng)建控制器:php artisan make:controller StudentController 創(chuàng)建模型:php artisan make:model Student 創(chuàng)建中間件:php artisan make:middleware Activity 2、Laravel的用戶認(rèn)證(Auth) php artisan make:auth 3、數(shù)據(jù)表遷移: php artisan migrate 只創(chuàng)建遷移文件:php artisan make:migration create_students_table --create=students //create_students_table遷移文件、students表名 創(chuàng)建模型同時(shí)創(chuàng)建遷移文件:php artisan make:model Article -m 4、填充測(cè)試數(shù)據(jù)到表中 創(chuàng)建一個(gè)填充文件并完善填充文件 php artisan make:seeder StudentTableSeeder 執(zhí)行單個(gè)填充文件 php artisan db:seed --class=StudentTableSeeder 批量執(zhí)行填充文件(要在DatabaseSeeder中注冊(cè)) php artisan db:seed 5、文件上傳(config/filesystems.php): if($request->isMethod('POST')){ $file = $request->file('source'); //文件是否上傳成功 if($file->isValid()){ //源文件名 $originalName = $file->getClientOriginalName(); //擴(kuò)展名 $ext = $file->getClientOriginalExtension(); //MimeType $type = $file->getClientMimeType(); //臨時(shí)文件絕對(duì)路徑 $realPath = $file->getRealPath(); //生成新文件名 $fileName = date('Y-m-d-H:i:s').uniqid().'.'.$ext; //保存到配置文件設(shè)置的驅(qū)動(dòng)磁盤(config/filesystems.php) $bool = Storage::disk('uploads')->put($fileName,file_get_contents($realPath)); var_dump($bool); }else{ var_dump($file->getErrorMessage()); } exit; } 6、發(fā)送郵件(config/mail.php) Mail::raw() :純文本 Mail::send() :html格式 config/mail.php配置: 'from' => ['address' => 'seven@163.com', 'name' => 'seven'], //其他配置讀取env下 env配置: MAIL_DRIVER=smtp MAIL_HOST=smtp.163.com MAIL_PORT=465 MAIL_USERNAME=seven@163.com MAIL_PASSWORD=test123 MAIL_ENCRYPTION=ssl 發(fā)送純文本: Controller代碼如下: \Mail::raw('郵件內(nèi)容 測(cè)試',function($message){ $message->from('seven@163.com','seven'); $message->subject('郵件主題 測(cè)試'); $message->to('541330576@qq.com'); }); 發(fā)送html: 1)在resource/views/students下新建mail.blade.php模板,內(nèi)容如下: <h2>Hello {{$name}}</h2> 2)Controller中代碼如下: \Mail::send('students.mail',['name'=>'seven'],function($message){ $message->to('546630576@qq.com'); }); 7、緩存使用(config/cache): put()、add()、forever()、has()、get()、pull()、forget() 7.1 添加緩存 //添加緩存10min,之前key存在,則會(huì)添加失敗,返回值bool $bool=\Illuminate\Support\Facades\Cache::add('key','val',10); //設(shè)置緩存10分鐘,之前key存在重新更新,key不存在添加,無返回值 \Illuminate\Support\Facades\Cache::put('key1','val1',10); //永久保存在緩存中 \Illuminate\Support\Facades\Cache::forever('key1','val1'); 7.2 判斷緩存key是否存在 \Illuminate\Support\Facades\Cache::has('key1'); 7.2 獲取緩存 //單純獲取內(nèi)容,什么都不做 \Illuminate\Support\Facades\Cache::get('key1'); //取出來之后,并刪除該緩存 \Illuminate\Support\Facades\Cache::pull('key1'); 7.3 刪除緩存 $bool = \Illuminate\Support\Facades\Cache::forget('key1'); 8、laravel中錯(cuò)誤與日志(config/app.php) 8.1 APP_DEBUG :本地開發(fā)APP_DEBUG環(huán)境變量為true,線上永遠(yuǎn)為false 8.2 HTTP異常(404,401,50x): abort('401')//就會(huì)跳轉(zhuǎn)到resource/view/errors/401.blade.php,并顯示錯(cuò)誤 abort('503')//就會(huì)跳轉(zhuǎn)到resource/view/errors/503.blade.php,并顯示錯(cuò)誤 【注意】:如果是404不存在,不需要abort,直接創(chuàng)建resource/view/errors/403.blade.php頁(yè)面, 如果訪問不存在的路由,會(huì)自動(dòng)跳轉(zhuǎn)到這個(gè)404 8.3 日志log: env配置: APP_LOG=single //"single", "daily", "syslog", "errorlog" ( single:所有日志都永久寫到這一個(gè)日志文件中 daily:根據(jù)日期,每天生成一個(gè)日志文件 syslog: ) APP_LOG_LEVEL=debug 代碼中記錄日志7中錯(cuò)誤級(jí)別,這里只寫了4中: Log::info('info',['name'=>'seven','age'=>18]); Log::warning('warning',['name'=>'seven','age'=>18]); Log::error('error',['name'=>'seven','age'=>18]); Log::debug('debug',['name'=>'seven','age'=>18]); 【注】:可以傳遞數(shù)組,lavalel日志中將會(huì)序列化成json方便查看 9、Queue隊(duì)列(config/queue.php) env配置: QUEUE_DRIVER=database //database、redis、sync等 9.1 先創(chuàng)建記錄對(duì)列表 php artisan queue:table //記錄未執(zhí)行的隊(duì)列任務(wù), //執(zhí)行成功就刪除,失敗了就到failed-table中 php artisan queue:failed-table //記錄失敗的隊(duì)列任務(wù) php artisan migrate 9.2 創(chuàng)建一個(gè)發(fā)送郵件隊(duì)列任務(wù) php artisan make:job SendEmail //創(chuàng)建成功后就在app/Jobs/SendEmail.php中 9.3 編輯app/Jobs/SendEmail.php任務(wù) private $email; public function __construct($email){ $this->email = $email; } public function handle(){ Log::info('發(fā)送郵件成功,email為',$this->email); } 9.3 命令行監(jiān)聽隊(duì)列:php artisan queue:listen 9.4 控制器加入隊(duì)列: dispatch(new SendEmail('546630576@qq.com')); 9.5 查看失敗的隊(duì)列任務(wù): php artisan queue:failed 9.6 重新執(zhí)行失敗隊(duì)列中的任務(wù): php artisan queue:retry 10 //只執(zhí)行ID為10的那個(gè)任務(wù) php artisan queue:retry all //執(zhí)行所有失敗的任務(wù) 9.7 刪除隊(duì)列任務(wù): php artisan queue:forget 4 //刪除ID為4的那個(gè)失敗任務(wù) php artisan queue:flush //刪除所有失敗的任務(wù)


很多朋友想深入學(xué)習(xí)swoole和laravel、thinkphp,swoft微服務(wù)在使用中遇到很多困難,我為大家準(zhǔn)備了一套精品PHP中高級(jí)進(jìn)階學(xué)習(xí)教程,需要可看下圖詳細(xì)內(nèi)容,還可加入大牛學(xué)習(xí)圈子,分享tp,laravel,swoole,swoft微服務(wù)、SQL性能優(yōu)化,分布式、高并發(fā)等教程,各種大牛都是1-7年P(guān)HP開發(fā)者,每天還有11年的架構(gòu)師做課程講解,助你進(jìn)階中高級(jí)PHP程序員,增值漲薪!

Laravel高級(jí)

Laravel高級(jí)
Laravel高級(jí)
Laravel高級(jí)

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI