laravel基礎課程---15、分頁及驗證碼(lavarel分頁效果如何實現)
一、總結
一句話總結:
數據庫的paginate方法:$data=\DB::table("user")->orderBy("id","desc")->paginate(10);
頁面links方法:{{$data->links()}}
分頁效果 1、控制器 $data=\DB::table("user")->orderBy("id","desc")->paginate(10); // simplePaginate 簡化的分頁效果 // paginate 正常分頁效果 // 加載用戶管理頁面 return view('admin.user.index')->with("data",$data); 2、頁面中 {{$data->links()}}
1、lavarel的兩種分頁效果?
簡化分頁效果:只有上一頁下一頁按鈕:$data=\DB::table("user")->orderBy("id","desc")->simplePaginate(10);
正常分頁效果:還有指定頁的按鈕 :$data=\DB::table("user")->orderBy("id","desc")->paginate(10);
分頁效果 1、控制器 $data=\DB::table("user")->orderBy("id","desc")->paginate(10); // simplePaginate 簡化的分頁效果 // paginate 正常分頁效果 // 加載用戶管理頁面 return view('admin.user.index')->with("data",$data); 2、頁面中 {{$data->links()}}
2、lavarel中如何使用驗證碼,比如登錄的時候?
引入外部驗證碼
書寫驗證碼路由:因為驗證碼使用的很普遍
引入外部驗證碼 1、把驗證碼文件夾拷貝到指定目錄 (D:\laravel\yzmedu\yzm2\resources) 2、書寫路由 Route::get("admin/yzm","Admin\LoginController@yzm"); 3、控制器中生成驗證碼 // 引入驗證碼類 include "../resources/code/Code.class.php"; // 實例化驗證碼類 $code=new \Code(); // 生成驗證碼 $code->make(); 4、獲取驗證碼 $code->get();
3、lavarel中如何引入一個外部的類,比如驗證碼類?
include關鍵字:include "../resources/code/Code.class.php";
引入外部驗證碼 1、把驗證碼文件夾拷貝到指定目錄 (D:\laravel\yzmedu\yzm2\resources) 2、書寫路由 Route::get("admin/yzm","Admin\LoginController@yzm"); 3、控制器中生成驗證碼 // 引入驗證碼類 include "../resources/code/Code.class.php"; // 實例化驗證碼類 $code=new \Code(); // 生成驗證碼 $code->make();
4、lavarel中如何找到根命名空間?
反斜杠:$code=new \Code();
引入外部驗證碼 1、把驗證碼文件夾拷貝到指定目錄 (D:\laravel\yzmedu\yzm2\resources) 2、書寫路由 Route::get("admin/yzm","Admin\LoginController@yzm"); 3、控制器中生成驗證碼 // 引入驗證碼類 include "../resources/code/Code.class.php"; // 實例化驗證碼類 $code=new \Code(); // 生成驗證碼 $code->make();
5、驗證碼點擊自動更新如何實現?
js點擊事件:點擊自動更換img地址:onclick="imgs(this)"
帶隨機數做參數:不然地址一樣,地址不會被更新:obj.src='/admin/yzm?code='+Math.random();
<div class="input-group"> <span class="input-group-addon"> <span class="glyphicon glyphicon-lock"></span></span> <input type="text" class="form-control" name="code" placeholder="請輸入驗證碼"> <img src="/admin/yzm" onclick="imgs(this)" alt=""> </div> <script> function imgs(obj){ // 更換地址 obj.src='/admin/yzm?code='+Math.random(); } </script>
// 驗證碼方法 public function yzm(){ // 引入驗證碼類 include "../resources/code/Code.class.php"; // 實例化驗證碼類 $code=new \Code(); // 生成驗證碼 $code->make(); }
6、驗證碼驗證如何實現及原理?
看文檔或者看源代碼:非常簡單,這里是個get函數獲取驗證碼數據,和用戶傳過來的驗證碼比較一下即可:$yzm=$code1->get();
驗證碼原理就是session():可能需要按照需求改一下驗證碼相關的函數
驗證碼驗證
// 后台登錄處理 public function check(Request $request){ // 接收數據 $name=$request->input("name"); $pass=$request->input("pass"); $code=$request->input("code"); // 判斷用戶名是否輸入 if ($name) { # code... // 判斷密碼 if ($pass) { # code... // 驗證碼是否正確 // // 引入驗證碼類 include "../resources/code/Code.class.php"; // // 實例化驗證碼類 $code1=new \Code(); // 獲取驗證碼 $yzm=$code1->get(); if ($yzm==strtoupper($code)) { // 獲取數據庫 if ($data=\DB::table("user")->where('name','=',$name)->first()) { // 將數據庫中密碼解密 $dataPass=\Crypt::decrypt($data->pass); if($dataPass==$pass){ session(['adminUserInfo'=>['name'=>$name,'id'=>$data->id]]); return redirect('admin'); }else{ return back()->withInput()->with("error","密碼錯誤"); } }else{ return back()->withInput()->with("error","用戶名不存在"); } }else{ return back()->withInput()->with("error","驗證碼有誤"); } }else{ return back()->withInput()->with("error","請輸入密碼"); } }else{ return back()->withInput()->with("error","請輸入用戶名"); } // exit(); // // 判斷 // if ($_POST['name']=='admin' && $_POST['pass']=='123') { // }else{ // return back(); // } }
7、lavarel的session中可以存儲數組數據么?
可以:session(['key' => 'value']);
Route::get('home', function () { // 獲取 session 中的一條數據... $value = session('key'); // 指定一個默認值... $value = session('key', 'default'); // 存儲一條數據至 session 中... session(['key' => 'value']); });
二、內容在總結中