1. 程式人生 > >laravel 基礎筆記~快速入門

laravel 基礎筆記~快速入門

Laravel框架筆記

課程大綱:
1. composer的安裝
2. laravel框架的安裝
3. 本地域名解析與apapche虛擬主機配置
4. 環境配置與資料庫連線
目錄結構介紹
路由使用
控制器使用
5. laravel資料庫遷移工具
6. laravelDebug安裝與除錯命令

一、 composer的安裝:

1.Composer是什麼?
是 PHP 用來管理依賴(dependency)關係的工具。
你可以在自己的專案中宣告所依賴的外部工具庫(libraries),
Composer 會幫你安裝這些依賴的庫檔案。
2.網址:

https://getcomposer.org
下載:https://getcomposer.org/download/

 中國全量映象:http://pkg.phpcomposer.com/
    啟用本映象服務命令:
        composer config -g repo.packagist composer https://packagist.phpcomposer.com
        或
        composer config repo.packagist composer https://packagist.phpcomposer.com

3.Composer常用命令:
composer -v 檢視版本
composer selfupdate 更新composer

二、安裝Laravel框架

文件網站:http://www.golaravel.com/
選擇5.1版本:http://www.golaravel.com/laravel/docs/5.1/

對執行環境的要求: 
    - PHP >= 5.5.9 
    - OpenSSL PHP 擴充套件 
    - PDO PHP 擴充套件 
    - Mbstring PHP 擴充套件 
    - Tokenizer PHP 擴充套件

通過 Composer Create-Project 命令安裝 Laravel:
   命令:composer create-project laravel/laravel --prefer-dist

三、本地域名解析與apapche虛擬主機配置(window下)

1. 開啟:C:\Windows\System32\drivers\etc目錄中的hosts檔案:
    配置資訊:127.0.0.1 自定義主機名

2. 在apache的httpd-vhosts.conf配置檔案中配置
    <VirtualHost *:80>
        ServerAdmin [email protected]
        DocumentRoot "虛擬主機目錄位置"
        ServerName 虛擬主機名
        ErrorLog "logs/虛擬主機名-error.log"
        CustomLog "logs/虛擬主機名-access.log" common
    </VirtualHost>

四、應用程式結構介紹:

詳見手冊中《系統架構》的應用程式結構

五、HTTP 路由

1. 基本路由:
    Route::get('/', function()
    {
        return 'Hello World';
    });
    Route::post('foo/bar', function()
    {
        return 'Hello World';
    });
    Route::put('foo/bar', function()
    {
        //
    });
    Route::delete('foo/bar', function()
    {
        //
    });
    Route::match(['get', 'post'], '/', function() //多種請求註冊路由
    {
        return 'Hello World';
    });
2. 路由引數
    Route::get('user/{id}', function($id)
    {
        return 'User '.$id;
    });

六. 環境配置與資料庫連線

修改:專案下的.env檔案

六、laravelDebug安裝與除錯命令

網址:https://github.com/barryvdh/laravel-debugbar

安裝命令:composer require barryvdh/laravel-debugbar
進入:config/app.php檔案
    配置:
        Barryvdh\Debugbar\ServiceProvider::class,
        'Debugbar' => Barryvdh\Debugbar\Facade::class,

執行命令:php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider"

七、控制器的建立

建立一個RESTful資源控制器
命令:php artisan make:controller StuController

命令:php artisan make:controller StuController --plain (不好用)
    --plain表示建立一個空的控制器

控制器中程式碼
//在控制器中查詢資料,並載入模板輸出
public function index()
{
    $list = \DB::table('stu')->get();
    return view('stu.index',["list"=>$list]);
    //return view('stu.index', compact('list'));
}

在routes.php的路由檔案中配置
Route::get('stu/index', '[email protected]');

public function index()
{
    //$list = \DB::table('stu')->get();
    $list = \DB::table('stu')->paginate(5);


    //return view('stu.index',['list'=>[]]);
    return view('stu.index',["list"=>$list]);
    //return view('stu.index', compact('list'));
}

public function create()
{
    return view("stu.create");
}

public function store(Request $request)
{   
    //dd($request);
    $input = $request->all();
    unset($input['_token']);

    $id = \DB::table('stu')->insertGetId($input);
    return "新增成功!id號".$id;       
}

public function update()
{
    return "update";
}

public function show($id)
{
    $stu = \DB::table('stu')->where("id","=",$id)->first();
    dd($stu);
}

public function destroy($id)
{
    return "delete".$id;
}

八、Laravel 中Request請求物件的使用

1. 使用方式:
    1.1 通過 Facade
        在控制器中使用: use Request匯入
        在控制器的方法中獲取引數資訊:$name = Request::input('name');

    1.2 通過依賴注入
        在控制器中使用:use Illuminate\Http\Request; 匯入
        在控制器的方法中使用引數注入request物件
            public function store(Request $request)
            {
                $name = $request->input('name');
            }

2. 取得輸入資料:
    2.1 $name = Request::input('name'); 獲取請求引數name的值
    2.2 $name = Request::input('name', 'Sally'); 獲取引數name的值,若沒有則使用Sally預設值
    2.3 if (Request::has('name')){ ... }  判斷是否有此引數。

    2.4 Request::all();  獲取所有引數值

    2.5 獲取部分引數值
        $data = $request->only("name","id"); //獲取部分引數值
        $data = $request->except("name"); //獲取指定外部分引數值

    2.6 獲取陣列中的值

九. Laravel中的響應:Response

1. 基本響應
    1.1 從路由返回字串
            Route::get("/hh",function(){
                return "Hello World!";
            });

    1.2 自定義響應:
          在控制器中使用response: use Illuminate\Http\Response;
          控制器方法中的程式碼
           $content="Hello Laravel!";
           $status = 200;
           $value = "text/html";
           return (new Response($content, $status))->header('Content-Type', $value);

    1.3 在響應送出檢視  
           return response()->view('hello')->header('Content-Type',"text/html");

    1.4 附加 Cookies 到響應
            return response($content)->withCookie(cookie('name', 'value'));

2. 重定向
    2.1 return redirect('user/login');

十 檢視

檢視被儲存在 resources/views 資料夾內 
例項創捷一個vv.php檢視檔案

//在控制器的方法中載入檢視方式:
    1. return view("vv"); //載入檢視
    2. return view("vv",['name'=>"zhangsan","age"=>20]); //載入檢視,並攜帶引數
    3. return view("vv")->with("name","lisi")->with("age",30); //通過with攜帶引數值

在檢視中如何輸出
    <body>
        <h2>Laravel框架檢視測試</h2>
        姓名:<?php echo $name; ?>   年齡:<?php echo $age; ?>
    </body>

十一 模板引擎:–Blade

Blade 模板字尾名都要命名為 .blade.php

十二 資料遷移

十三 資料填充

資料搜尋加分頁

檔案上傳

自定義圖片等比縮放類的使用

1. 將事先定義好的Image.php類放置到App/Org/目錄下(其中Org自定義目錄).
   在類中定義名稱空間:namespace App\Org;

2. 在使用的控制類中引入當前類: use App\Org\Image;
    具體使用:
        //執行縮放
        $img = new Image();
        $img->open("./uploads/".$filename)->thumb(100,100)->save("./uploads/s_".$filename);

使用第三方圖片處理外掛:intervention/image

1. 安裝:使用Composer命令,需要在你的Laravel框架目錄下執行如下命令執行安裝

    $ php composer.phar require intervention/image 
    或 composer require intervention/image

2. 新增配置
    修改/config/app.php配置檔案
        在$providers屬性中新增: Intervention\Image\ImageServiceProvider::class,
        在$aliases屬性中新增:'Image' => Intervention\Image\Facades\Image::class,

3. 執行命令讓當前Laravel使用當前外掛(原使用的是GD庫)
    $ php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravel5"


4. 測試: 在當前專案控制器中就可以使用下面程式碼測試
    use Intervention\Image\ImageManagerStatic as Image;

    $img = Image::make("./uploads/".$filename)->resize(100,100);
    $img->save("./uploads/s_".$filename); //另存為
    return $img->response("jpg"); //輸出

    //執行等比縮放
    $img->resize(null, 400, function ($constraint) {
                                $constraint->aspectRatio();
                                $constraint->upsize();
                            });

表單驗證

一、表單驗證:
1. 控制器驗證:
  public function store(Request $request)
  {   
    //驗證
    $this->validate($request, [
        'name' => 'required|max:255',
        'age' => 'required|numeric|max:100|min:10',
    ]);
    ...
  }

2. 在表單頁上顯示:
    @if (count($errors) > 0)
        <div class="alert alert-danger">
            <ul style="color:red;">
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
            </ul>
        </div>
    @endif


在Laravel框架中使用驗證碼擴充套件(gregwar/captcha)

--------------------------------------------

首先呢在laravel5中預設是沒有提供驗證碼的,這裡我們需要使用第三方提供的庫:gregwar/captcha

通過composer安裝:

在composer.json的require中加入”gregwar/captcha”: “dev-master”,具體程式碼如下

“require”: {
“laravel/framework”: “5.0.*”,
“gregwar/captcha”: “dev-master”
},

然後執行: composer update命令

使用gregwar/captcha庫

使用就非常簡單了,直接上程式碼
記得在頂部use Gregwar\Captcha\CaptchaBuilder;

function captch(){
builder=newCaptchaBuilder;builder->build(150,32);
//Session::set(‘phrase’,builder>getPhrase());//returnresponse(builder->output())->header(‘Content-type’,’image/jpeg’);
}

在檢視中呼叫

驗證就更簡單了
function index(){
yanzhengma=Session::get(phrase);if(_POST['yanzhengma'] == $yanzhengma){
echo ‘success’;//驗證成功
}

}

記得別忘了在頂部use Session

還有 驗證碼需要你的環境安裝gd庫,要不然不會正常顯示
需要視訊課程的,可以留言!我會把視訊共享給大家!

相關推薦

laravel 基礎筆記~快速入門

Laravel框架筆記 課程大綱: 1. composer的安裝 2. laravel框架的安裝 3. 本地域名解析與apapche虛擬主機配置 4. 環境配置與資料庫連線 目錄結構介紹

laravel模型使用快速入門

orderby ber 數組 mem 解決 維護 times 調用 返回 1、模型文件的位置 2、命名規則 本身laravel對模型的命名沒有嚴格的要求,一般采用 表名(首字母大寫).php 如: Member.php User.php Admin.php Goods.

Spring基礎快速入門spring boot(7):spring boot 2.0簡單介紹

從這篇文章開始以spring boot2為主要版本進行使用介紹。 Spring boot 2特性 spring boot2在如下的部分有所變化和增強,相關特性在後續逐步展開。 特性增強 基礎元件升級: JDK1.8+ tomcat 8+ Thymeleaf 3

Spring基礎快速入門spring boot(4):使用slf4j輸出日誌

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Spring基礎快速入門spring boot(2):SPRING INITIALIZR

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Spring基礎快速入門spring cloud(1):Spring Cloud介紹

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Spring基礎快速入門spring cloud(2):服務發現之eureka

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Spring基礎快速入門spring cloud(4):API閘道器之Zuul

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Spring基礎快速入門spring boot(10):spring boot + sonarqube +jacoco

上篇文章我們瞭解到瞭如何使用SonarQube對建立的SpringBoot的應用進行分析,這篇文章來接著確認一些如何視覺化地確認測試覆蓋率。 SpringBootTest 需要測試覆蓋率,自然,在此之前需要有測試用例,在前面的例子中已經簡單講述了在SpringBoot應用中進行

Spring基礎快速入門spring boot(9):使用sonarqube來檢查技術債務

作為程式碼質量檢查的流行工具,比如Sonarqube能夠檢查程式碼的“七宗罪”,跟程式碼結合起來能夠更好地提高程式碼的質量,讓我們來看一下,剛剛寫的Springboot2的HelloWorld的程式碼有什麼“罪”。 Sonarqube Sonarqube可以使用docker

Spring基礎快速入門spring boot(8):使用Junit進行測試

使用Junit或者TestNG可以進行單體測試,這篇文章簡單說明一下如何在Spring boot的專案中使用Junit進行單體測試。 pom設定 pom中需要新增spring-boot-starter-test <dependency> <g

教你零基礎如何快速入門大資料技巧

  現在是大資料時代,很多人都想要學習大資料,因為不管是就業前景還是薪資都非常的不錯,不少人紛紛從其他行業轉型到大資料行業,那麼零 基礎的人也想要學習大資料怎麼辦呢?下面一起探討下零基礎如何快速入門大資料技巧吧。   很多人都需要學習大資料是需要有一定的基礎

Spring基礎快速入門spring cloud):API閘道器之Zuul

Spring Cloud是Spring總多的Project中的一個,它提供了一整套的工具幫助系統架構師們在進行分散式設計的時候可以拿來即用, 在建立和釋出微服務時極為便捷和有效。 本系列文章將會使用最簡單的例子和最為容易的方式來學習Spring Cloud。本文將會介紹如何引入Zuul在

Python selenium學習筆記---快速入門實現自動化指令碼Demo

Python selenium譯文學習部落格地址 一.1.下載並安裝python3,在安裝時選擇新增add to path可以自動配置環境變數,安裝成功後,在cmd視窗輸入python檢視,成功安裝後提示python版本 下載selenium-3.13.0.t

Hibernate基礎快速入門(6):修改資料

資料庫的操作增刪改查,或者CRUD是最常見的操作。這篇文章中介紹修改資料的方法 hibernate.cfg.xml 建立如下所示的hibernate的設定檔案 <?xml version="1.0" encoding="utf

Spring基礎快速入門spring(1):基礎概念

作為流行了10年以上的老將,spring依然精神矍鑠,影響不減。本文將對spring很基礎的概念進行介紹以及為學習spring最核心和基礎的知識作環境搭建的準備。 Spring官網 簡介 Spring為JAVA企業級應用提供了

教你零基礎如何快速入門大數據技巧

學生 多人 體系 spa pdf文檔 一個 pytho 概述 javase 教你零基礎如何快速入門大數據技巧 現在是大數據時代,很多人都想要學習大數據,因為不管是就業前景還是薪資都非常的不錯,不少人紛紛從其他行業轉型到大數據行業,那麽零基礎的人也想要學習大數據怎麽辦呢?下面

Spark (Python版) 零基礎學習筆記(一)—— 快速入門

由於Scala才剛剛開始學習,還是對python更為熟悉,因此在這記錄一下自己的學習過程,主要內容來自於spark的官方幫助文件,這一節的地址為: 文章主要是翻譯了文件的內容,但也在裡邊加入了一些自己在實際操作中遇到的問題及解決的方案,和一些補充的小知識,一起學習。 環境

CentOS6_Python3.6.1筆記(尚學堂-Python基礎快速入門

虛擬機器環境: 設定網路 1、修改網路地址 1.設定網絡卡為nat模式 2.確保物理機啟動dhcp、net服務 3.編輯檔案:vim /etc/sysconfig/network-scripts/ifcfg-eth0 4.ONBOOT=yes 5.設定IP

Python學習筆記(一):基礎語法、變數型別、運算子(快速入門篇)

Head First Python、Python基礎教程 下劃線的特殊意義 以下劃線開頭的識別符號是有特殊意義的。 以單下劃線開頭(_foo)的代表不能直接訪問的類屬性,需通過類提供的介面進行訪問,不能用”from xxx import *”而匯入