欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Laravel快速入门

程序员文章站 2022-06-06 21:17:34
...

Laravel 入门30分

Laravel 5.5+

安装

服务器要求

  • PHP >= 7.0.0
  • PDO 扩展

安装Laravel

Laravel利用 Composer 管理依赖 。

确保你的机器安装了 Composer

通过 Laravel 安装器

composer global require "laravel/installer"

安装之后,laravel new 命令创建一个新的 Laravel 项目

laravel new blog

通过 Composer 创建项目

或者,可以通过 create-project 命令来安装 Laravel:

composer create-project --prefer-dist laravel/laravel blog "5.5.*"

本地开发服务器

php astrian serve

可以用 php 内置的 webServe 功能开启一个本地的 web 服务

php -t project-name/public -S localhost:8000

基础知识

路由

  • 基本路由

    Route::get('hello', function() {
        return 'Hello World';
    });
    
    Route::post('post', function() {
        return 'this is post route';
    });
    
    // 浏览器访问查看,下面注释简写
    // http://localhost:8000/hello
    
  • 多请求路由

    Route::match(['get', 'post'], 'multy1', function(){
        return '多请求路由';
    });
    
    Route::any('multy2', function() {
        return '多请求路由any'
    })
    
  • 参数路由

    Route::get('user/{id}', function($id) {
        return 'user id is ' . $id;
    });
    
    Route::get('users/{name?}', function($name='default params') {
        return 'route with params and has default';
    });
    
  • 路由别名

    Route::get('parent/member_user', ['as' => 'user', function() {
        return route('user');
    }]);
    
  • 路由群组

    Route::group(['prefix' => 'super'], function() {
        Route::get('user', function() {
            return 'super user';
        });
        Route::get('man', function() {
            return 'super man';
        });
    })
    // super/user
    // super/man
    

控制器

知识目标:

  1. 怎么新建一个控制器
  2. 控制器和路由怎么关联
  3. 关联控制器后,路由的特性怎么用

创建一个控制器

MemberController.php

<?php

namespace App\Http\Controller;

use Illuminate\Route\Controller;

class MemberController extends Controller
{
    public function info()
    {
        return 'memberinfo';
    }
}

路由关联控制器

Route::get('memberinfo', '[email protected]');

// OR
Route::get('memberinfo2', ['uses' => '[email protected]']);

// 访问
// http://localhost:8000/memberinfo

视图

知识目标

  1. 怎么新建视图
  2. 怎么输出视图

视图文件在 resource/views 目录下

新建: member/info.blade.php

info.blade.php

{{$name}} -> {{$age}}

MemberController.php

public function info()
{
    return view('member/info', [
        'name' => 'WangZheng',
        'age' => 18
    ])
}

模型

知识目标:

  1. 怎么新建模型
  2. 怎么使用模型

app目录下就是模式

新建 app/Member.php

namespace App;
use Illuminate\Database\Eloquent\Model;

class Member extends Model
{
    public static getMember()
    {
        return 'WangZheng is super VIP';
    }
}

控制器中调用

use App\Member;

class MemberController extends Controller 
{
    public function info()
    {
        return Member::getMember();
    }
}

操作数据

Laravel 中提供3中操作数据库方式:

  1. DB facade (原始查找)
  2. 查询构造器
  3. Eloquent ORM

知识目标:

  1. 连接数据库与新建数据表
  2. 使用 DB facade 实现 CURD

配置文件在 config/database.php

读取的变量是读取 .env 文件中的

DB facade CURD

namespace App\Http\Controllers;

use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\DB;

class StudentController extends Controller
{
    public function test1()
    {
        // 新增,返回 新增成功 true 或 新增失败 false
        $bool = Db::insert('insert into student(name, age) values(?, ?)', ['MM', 18]);
        var_dump($bool);
        // 改
        $num DB::update('update student set age = ? where id = ?', [20, 1]);
        var_dump($num);
        
        // 查
        $students = DB::select('select * from student');
        dd($students); // dd() laravel提供的友好输出函数
        
        // 删除
        $row = DB::delete('delete from student where id = ?', [1]);
        var_dump($row);
    }
}

查询构造器

知识目标:

  1. 查询构造器简介及新增数据
  2. 使用查询构造器修改数据
  3. 删除数据
  4. 查询数据
  5. 聚合函数

发现和TP5很像,由此猜测,TP5 借鉴了 Laravel,理由是 Laravel 比 TP5

emm,TP5 I get

新增

public function query1()
{
    $bool = DB::table('student')
        ->insert(['name' => 'name1', 'age' => 19]);
    var_dump($bool);
    $id = DB::table('student')
        ->insertGetId(['name'=>'getId', 'age'=> 22]);
    var_dump($id);
    // 一次增加多条数据用[[],[]]
}

更新

public function query2()
{
    $num = DB::tabel('student')
        ->where(['id' => 3])
        ->update(['age' => 33]);
}

删除

// 删除
  public function query3()
  {
    $num = DB::table('student')
      ->where('id', '=', 12)
      ->delete();
    var_dump($num);

    // 截断表操作,dangerous
    DB::table('student')->truncate();
  }

框架开发 Laravel-Admin

我本次学 Laravel 的目的是搭建一个官网的后台,方便推广人员自行更新官网的内容,不要每次修改东西都来找我们前端。现在是大前端时代,还在做切图仔???

抱歉,老子做不到

so,直接入手 Laravel 的一款后台框架,GitHub 一搜,OK,就它了

入门

安装

要求: php7+ Laravel5.5

首先确保安装好了 Laravel ,并且配置好数据库连接信息

  1. 配置数据库链接信息

    编辑 .env 文件,设置连接数据库的账号、密码、数据库名

  2. composer require encore/laravel-admin
    

运行下面的命令发布资源:

php artisan vender:publish --provider="Encore\Admin\AdminServiceProvider"

生成配置文件 config\admin.php 里面包含数据库链接的配置信息

本人并没有在次找到数据库连接配置信息,本人在 .env 中找到,并修改了配置

安装:

php artisan admin:install

这里我遇到一个问题,创建表的时候报错,数据字段太长

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes

解决办法:

找到 app\Providers\AppServiceProvider.php 文件

use Illuminate\Support\Facades\Schema;

public function boot()
  {
    //FIXME: 创建表报错,Specified key was too long
    Schema::defaultStringLength(191);
  }