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