欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Laravel5.7框架安裝與使用學習筆記圖文詳解

 更新時間:2019年04月02日 12:22:31   作者:李維山  
這篇文章主要介紹了Laravel5.7框架安裝與使用學習筆記,結合圖文形式詳細講解了Laravel5.7框架的安裝、配置、組件、路由等基礎與操作技巧,需要的朋友可以參考下

本文實例講述了Laravel5.7框架安裝與使用。分享給大家供大家參考,具體如下:

【安裝Laravel】

Composer安裝:

composer create-project --prefer-dist laravel/laravel

目錄結構:

網(wǎng)站根目錄指向了/public,訪問報錯:

原因是并沒有vendor這個文件夾,看了這篇博客http://www.dbjr.com.cn/article/158896.htm

在根目錄執(zhí)行 composer update,下載了一大堆東西

完事訪問一片空白,錯誤500......然后各種百度,各種設置目錄權限:

chmod -R 777 storage/
chmod -R 777 bootstrap/cache/
chmod -R 777 vendor/

還是不行,最后查看了/storage/logs下面的日志,有報錯:

少了這么一個key,再次百度,我的做法是:把根目錄.env.example這個隱藏文件重命名為.env

然后根目錄執(zhí)行 php artisan key:generate

(參考博客:https://blog.csdn.net/qq_39479575/article/details/78495703

終于打開了這個頁面,真不容易,明天我得吃個雞腿慶祝一下......

使用 php artisan --version 命令查看安裝的Laravel版本,是最新的5.7版本 :

【一些配置】 

Laravel 所有的配置文件都放在根目錄 /config 下面:

修改app.php,開啟debug:

設置時區(qū)為Asia/Shanghai:

控制器目錄:

視圖層目錄:

【初識路由】

與thinkphp相比,Laravel不能通過 /模塊名/控制器名/操作名 直接訪問web界面

每一個web界面都必須在 /routes/web.php 中定義一條路由規(guī)則:

默認路由配置的意思是:訪問根目錄(網(wǎng)站首頁),渲染視圖層的"歡迎"頁面:

Route::get('/', function () {
  return view('welcome');
});

在控制器目錄新建了一個IndexController.php:

<?php

namespace App\Http\Controllers;

class IndexController extends Controller
{
  public function index(){
  	return '這是首頁';
  } 
}

修改首頁路由:

Route::get('/', 'IndexController@index');

再次訪問首頁:

項目通常會區(qū)分前后臺,在tp中可以通過劃分模塊來實現(xiàn),Laravel中同樣可以用這個原理

在控制器目錄下新建了兩個文件夾:Index、Admin,分別作為前、后臺控制器模塊:

以后臺Admin為例,在下面新建兩個控制器Index和User

手動創(chuàng)建太low了,Laravel使用命令行創(chuàng)建控制器、Model,命名空間都自動幫你寫好......

php artisan make:controller Admin/IndexController

IndexController.php:

<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class IndexController extends Controller
{
  public function index(){
  	return '后臺首頁';
  } 
}

UserController.php:

<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class UserController extends Controller
{
  public function userlist(){
  	return '后臺用戶列表頁';
  } 

  public function useradd(){
  	return '后臺用戶添加';
  } 
}

在設置路由的時候,可以通過設置路由組group,共享路由屬性。如:命名空間namespace、路由前綴prefix、中間件middleware等。

路由組規(guī)則設置如下:

//在App\Http\Controllers\Admin命名空間下的控制器
Route::namespace('Admin')->group(function () {
  //后臺首頁
  Route::group(['prefix' => 'admin/index'], function () {
    // 首頁顯示
    Route::get('index', 'IndexController@index');
  });

  //后臺用戶
  Route::group(['prefix' => 'admin/user'], function () {
    //用戶列表
    Route::get('userlist', 'UserController@userlist');

    //用戶添加
    Route::get('useradd', 'UserController@useradd');
  });
});

這樣就可以實現(xiàn)類似tp那樣的 /模塊名/控制器名/操作名 的訪問方式:

(當然路由前綴prefix和路由名稱可以隨意定義,不一定要遵循tp的寫法,這里只是為了清晰明了) 

【中間件】

Laravel的中間件在 /app/Http/Middleware 目錄下,用于過濾HTTP請求,可以做一些字段驗證、身份驗證、CSRF 防護等等......

Laravel自帶了一些中間件:

 例:設置一個CheckLog中間件,判斷用戶是否登錄,如果登錄了可以看用戶列表頁,否則跳轉到首頁

執(zhí)行生成中間件命令:(這里和控制器一樣采用前后臺目錄分開放的方式)

php artisan make:middleware Admin/CheckLog

 

CheckLog.php中間件內(nèi)容:

<?php

namespace App\Http\Middleware\Admin;
use Illuminate\Http\Request;
use Closure;

class CheckLog
{
  /**
   * Handle an incoming request.
   *
   * @param \Illuminate\Http\Request $request
   * @param \Closure $next
   * @return mixed
   */
  public function handle($request, Closure $next)
  {
    $mid = $request->cookie('mid');
    if(empty($mid)){
      return redirect('admin/index/index');
    }
    //處理請求之前執(zhí)行動作
    return $next($request);
  }
}

 寫好中間件之后需要注冊中間件,在 /app/Http/Kernel.php 里面注冊

目的是給路由分配中間件,在 routeMiddleware 屬性里添加:

'admin.checklog' => \App\Http\Middleware\Admin\CheckLog::class,

修改/routes/web.php路由配置,給后臺用戶路由組添加中間件屬性:

//后臺用戶
Route::group(['prefix' => 'admin/user' , 'middleware' => 'admin.checklog'], function () {
  //用戶列表
  Route::get('userlist', 'UserController@userlist');

  //用戶添加
  Route::get('useradd', 'UserController@useradd');
});

此時訪問用戶列表頁,會先走中間件判斷登錄狀態(tài),沒登錄跳轉到首頁:

(Kernel.php中其他中間件屬性:全局中間件$middleware、中間件組$middlewareGroups、中間件執(zhí)行順序$middlewarePriority) 

如果不給路由設置中間件屬性,也可以在控制器的構造方法里設置中間件,可以指定或排除具體某一個操作,示例如下:

<?php

namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class UserController extends Controller
{
  public function __construct(){
    //全部操作生效
    $this->middleware('admin.checklog');

    //僅xxx操作生效
    // $this->middleware('admin.checklog')->only('userlist');

    //除xxx操作生效
    // $this->middleware('admin.checklog')->except('useradd');
  }

  public function userlist(){
  	return '后臺用戶列表頁';
  } 

  public function useradd(){
  	return '后臺用戶添加';
  } 
}

【請求 request】

獲得請求,首先需要引入 Illuminate\Http\Request 類

基本使用:

<?php

namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class IndexController extends Controller
{
  public function index(Request $request){
  	$uri = '請求路徑:'.$request->path();
  	$url = '請求URL:'.$request->url();
  	$method = '請求方法:'.$request->method();
  	$name = '獲取請求參數(shù):'.$request->input('name');
  	$mid = '獲取cookie:'.$request->cookie('mid');
    $key = '獲取session:'.$request->session()->get('key');
  	$file = '獲取上傳文件:'.$request->file('photo');
  	dump($uri);
  	dump($url);
  	dump($method);
  	dump($name);
  	dump($mid);
  	dump($file);

  	//驗證請求路徑
  	//if ($request->is('admin/*')) {
    //}

    //驗證請求方法
    //if ($request->isMethod('post')) {
    //}
  } 
}

【分配數(shù)據(jù) 渲染視圖】

以后臺首頁視圖 /admin/index/index 為例:

控制器使用 view() 函數(shù)渲染視圖,同時分配數(shù)據(jù):

<?php

namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
class IndexController extends Controller
{
  public function index(){
  	//分配一個字段
  	// $name = 'lws';
    // return view('admin.index.index')->with('name',$name);

    //分配數(shù)組
  	$data = ['name' => 'lws','sex' => 'nan'];
    return view('admin.index.index', $data);

    //也可以使用php的compact函數(shù)傳值
    //$name = 'lws';
    //$sex = 'nan';
    //return view('admin.index.index',compact('name','sex'));
  } 
}

視圖層使用雙大括號 {{ }} 獲得數(shù)據(jù):

姓名:{{$name}}<br/>
性別:{{$sex}}

 

{{ $test }} 會自動調(diào)用 PHP 的 htmlspecialchars()函數(shù)防止 XSS 攻擊,如果不需要轉義可使用 {!! $test !!} ,例如富文本格式。

更多關于Laravel相關內(nèi)容感興趣的讀者可查看本站專題:《Laravel框架入門與進階教程》、《php優(yōu)秀開發(fā)框架總結》、《php面向?qū)ο蟪绦蛟O計入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總

希望本文所述對大家基于Laravel框架的PHP程序設計有所幫助。

相關文章

  • PHP調(diào)用wsdl文件類型的接口代碼分享

    PHP調(diào)用wsdl文件類型的接口代碼分享

    本文給大家分享了一個PHP調(diào)用wsdl文件類型的接口代碼,非常的簡單也很實用,有相關需求的小伙伴們可以直接拿去用的。
    2014-11-11
  • Smarty高級應用之緩存操作技巧分析

    Smarty高級應用之緩存操作技巧分析

    這篇文章主要介紹了Smarty高級應用之緩存操作技巧,結合實例形式分析了Smarty緩存使用的相關技巧與注意事項,需要的朋友可以參考下
    2016-05-05
  • phpStorm2020 注冊碼

    phpStorm2020 注冊碼

    本文給大家分享phpStorm2020 注冊碼的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-09-09
  • php檢測用戶是否用手機(Mobile)訪問網(wǎng)站的類

    php檢測用戶是否用手機(Mobile)訪問網(wǎng)站的類

    php檢測用戶是否用手機(Mobile)訪問網(wǎng)站的類,引入這個類就可以直接使用了,程序基于MIT License協(xié)議開源,使用方法在下面
    2014-01-01
  • 微信公眾平臺開發(fā)之配置與請求

    微信公眾平臺開發(fā)之配置與請求

    微信公眾平臺是騰訊公司在微信的基礎上新增的功能模塊,通過這一平臺,個人和企業(yè)都可以打造一個微信的公眾號,并實現(xiàn)和特定群體的文字、圖片、語音的全方位溝通、互動。本文給大家介紹微信公眾平臺開發(fā)之配置與請求,需要的朋友可以參考下
    2015-08-08
  • discuz7 phpMysql操作類

    discuz7 phpMysql操作類

    MySql數(shù)據(jù)庫連接類,大家可以看下網(wǎng)上老手們用的什么方法,大家可以直接拿來用,但前提是大家能熟練的掌握的基礎上,這樣才能有所進步。
    2009-06-06
  • 如何通過PHP安裝數(shù)據(jù)庫并使數(shù)據(jù)初始化

    如何通過PHP安裝數(shù)據(jù)庫并使數(shù)據(jù)初始化

    這篇文章主要介紹了如何通過PHP安裝數(shù)據(jù)庫并使數(shù)據(jù)初始化,其實原理就是通過構建原生SQL來創(chuàng)建并初始化數(shù)據(jù)庫,連接數(shù)據(jù)庫、創(chuàng)建數(shù)據(jù)庫、使用數(shù)據(jù)庫、創(chuàng)建數(shù)據(jù)表、新增數(shù)據(jù)、關閉連接,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • CodeIgniter針對lighttpd服務器URL重寫的方法

    CodeIgniter針對lighttpd服務器URL重寫的方法

    這篇文章主要介紹了CodeIgniter針對lighttpd服務器URL重寫的方法,涉及l(fā)ighttpd服務器配置及URL配置規(guī)則的相關技巧,需要的朋友可以參考下
    2015-06-06
  • Yii2針對指定url的生成及圖片等的引入方法小結

    Yii2針對指定url的生成及圖片等的引入方法小結

    這篇文章主要介紹了Yii2針對指定url的生成及圖片等的引入方法,針對常用的URL格式及圖片路徑操作結合實例進行了對比分析,需要的朋友可以參考下
    2016-07-07
  • laravel 修改記住我功能的cookie保存時間的方法

    laravel 修改記住我功能的cookie保存時間的方法

    今天小編就為大家分享一篇laravel 修改記住我功能的cookie保存時間的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10

最新評論