Laravel快速入门

Laravel 入门30分

文章目录

  • Laravel 入门30分
    • 安装
      • 服务器要求
      • 安装Laravel
        • 通过 Laravel 安装器
        • 通过 Composer 创建项目
      • 本地开发服务器
    • 基础知识
      • 路由
    • 控制器
      • 创建一个控制器
      • 路由关联控制器
    • 视图
    • 模型
    • 操作数据
      • DB facade CURD
      • 查询构造器
    • 框架开发 Laravel-Admin
    • 入门
      • 安装

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



namespace App\Http\Controller;

use Illuminate\Route\Controller;

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

路由关联控制器

Route::get('memberinfo', 'MemberController@info');

// OR
Route::get('memberinfo2', ['uses' => 'MemberController@info']);

// 访问
// 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);
  }

你可能感兴趣的:(Laravel)