0、最少必要知识


0.1 route 配置
/routes/web.php 文件
    Route::get('/','SitesController@index');
    
0.2 在 controller 的 index 方法体中与视图交互
// url 视图路径, 默认 prefix 为 resources/views/
// data 可传数组/ 二维用 compact('data')
return view(url, data)

0.3 视频里的流程控制与循环
    0.3.1 @if       @foreach
    0.3.2 @endif    @endforeach

0.4 Migration 数据库一键迁移,数据库生成通过migration进行

0.5 Eloquent ORM 对象关系映射,将数据表映射为对象

0.6 model 的两种常见用法
    0.6.1 setAttribute, 增加和修改用
    0.6.2 queryScope, 查询设置过滤条件
    
0.7 表单验证,可以通过 Request 类完成

0.8 编辑文章,Form::model()

0.9 Restful API,操作与之对应的 HTTP 传值方式
    增 post
    删 delete 
    改 patch/put
    查 get

1、从安装到启动(mac)


1.1 安装,版本号 Laravel Framework 5.8.3
    1.1.1 使用 composer 全局安装,会生成 laravel 命令
        composer global require "laravel/installer"
    
    1.1.2 Debug, 运行 laravel 命令
        如果找不到命令,创建软链接
        ln -s ~/.composer/vendor/bin/laravel /usr/local/bin/laravel

1.2 创建项目
    1.2.1 方法一:使用 laravel 安装
        laravel new my-project
    1.2.1 方法二:使用 composer 安装
        composer create-project laravel/laravel my-project
    
1.3 启动
    1.3.1 方法一:使用 php 内置服务器
        php -S localhost:8888 -t public
    1.3.2 方法二:使用 laravel 提供的命令行工具
        php artisan serve

2、路由及其他目录

| - routes
| - - web.php   web 的路由,可指指向控制器方法
| - app
| - - Http
| - - - Controllers
| - - - - SitesController   控制器
| - resources
| - - views 视图文件
| - env     配置参数,如 mysql 相关配置

3、可以将路由交给控制器,生成控件器


web.php 文件里的写法如下:

3.1 Route::get('/','SitesController@index');
3.2 注册标准路由
    Route::resource('articles', 'ArticlesController');
3.3 查看当前路由
    php artisan route:list

4、向视图传递变量,blade 模板的用法


4.1 controller 文件的方法中
    4.1.1 方法一,传键值
        view('index')->with(key, value);
    4.1.2 方法二,传一维数组,在模块中可以直接用其中的元素
        view('index', $data)    // $data=['name'=>'Pual', 'sex'=>'male']
    
    4.1.3 方法三,传二维数组,视图中需要先遍历
        view('index', compact($data))   

4.2 index.blade.php 在视图文件中使用变量
    4.2.1 转义,相当于 php 的单引号,类似于 Vue
        {{ $key }} 
    4.2.2 不转义,相当于 php 的双引号
        {!! $key !!}
    

5、模板


5.1 定义视图模板 app.blade.php

    @yield('content')


5.2 继承模板
    @extends('app')
    @section('content')
    This is a test
    @stop

6、模板判断

@if($name == 'Paul')
    This is Paul
@else
    This is not Pual
@endif

7、循环输出


@foreach($people as $person)
    {{$person}}
@endforeach

8、配置


8.1 文件位置
    .env

9、Migration 数据库的版本控制,针对数据的迁移


9.1 同步已经有的表
    php artisan migrate 

9.2 创建表
    php artisan make:migration create_articles_table --create='articles'   

9.3 为已有表添加字段
    php artisan make:migration add_intro_column_to_articles --table=articles

10、Eloquent 是 laravel 的 ORM(对象关系映射)


10.1 创建model
    php artisan make:model Articles

10.2 model 关联 数据库

11、简单 Blog,的几个知识点

11.1 视图中url链接,拼接跳转链接,并带参数
    {{ url('url', $para) }}
11.2 接收参数
    11.2.1 设置带参路由,web.php ,关键点:{id} 
        Route::get('articles/{id}', 'ArticlesController@show');
    11.2.2 在 controller 中接收参数
        function show($id){...}

12、laravel Forms 使用

12.1 安装 composer 依赖包,laravel 官方依赖包
     composer require laravelcollective/html
12.2 配置 config -> app.php
    12.2.1 prividers 数组追加
        Collective\Html\HtmlServiceProvider::class,
    12.2.2 aliases 数组追回
        'Form'=>Collective\Html\FormFacade::class,
        'Html'=>Collective\Html\HtmlFacade::class
 
12.3 使用
    12.3.1 表单开发提交数据
        {!! Form::open(['url'=>'orders']) !!}
        {!! Form::close() !!}
    12.3.2 表单绑定模型
        {!! Form::model($order,['method'=>'patch', 'url'=>'orders/'.$order->id]) !!}
        {!! Form::close() !!}
        
12.4 Form 静态方法有哪些?
    参考网址:https://github.com/LaravelCollective/laravel-docs/blob/5.6/html.md
        

13、setAttribute 与 queryScope,特定作用的函数

13.1 setAttribute 对数据库相关字段做预处理,插入或者更新数据的时候用
        public function setPublishedAtAttribute($data)
        {
            $this->attributes['published_at'] = Carbon::createFromFormat('Y-m-d', $data);
    
        }
12.2 queryScope 字段过滤条件,在查询时使用
    public function scopePublished($query)
    {
        $query->where('published_at', '<=', Carbon::now());
    }

14、Carbon 类 laravel 中默认的时间处理类

15、表单验证

15.1 使用 Request 类
    15.1.1 创建 Request 类
        php artisan make:request CreateOrderRequest
    15.1.2 rules 验证
        public function rules()
            {
                return [
                    // | 分隔符,min:3 最少3个长度
                    'thing'=>'required|min:3',
                    'price'=>'required',
                    'note'=>'required',
                ];
            }
    
15.2  validate 验证
    $this->validate($request, ['title'=>'required', 'content'=>'required']);
    

16、编辑文章


16.1 显示某条记录
    {!! Form::model($order,['method'=>'patch','url'=>'orders/'.$order->id]) !!}
    {!! Form::close() !!}
16.2 提交修改
    method:patch 相当于 put,专门用来做局部修改
    

17、用户注册和登录


17.1 安装 Auth 模块
    php artisan make:auth
17.2 访问登录
    url/login

参考教程:https://study.163.com/course/...


BigXia
36 声望0 粉丝