课件笔记和项目分享
创建新项目:
composer create-project laravel/laravel weibo
git分支命令:
切换到master分支:git checkout master
创建新分支并切换:git checkout -b test
删除分支:git branch -d test
合并到master分支:git checkout master && git merge test
查看所有分支:git branch -v
Blade模板:
继承用于构建页面总布局
组件用于构建页面中常用块,一般一个页面可能多次用到的块
子视图用于构建页面中的某一块,一般一个页面只用一次的块
辅助函数:
string mix(string $filename) 函数将$name文件按 public/mix-manifest.json 中的映射转换为带指定id参数的文件,id值 = substr(md5_file($filename), 0, 20),解决前端文件更新后浏览器缓存问题。
compact($var1, $var2, ...) 返回 [$var1 => $val1, $var2 => $val2, ...],常用给视图数据打包: view($name, compact(...))
laravel数据库迁移:
创建迁移:php artisan make:migration migration_file_name
--create=tbname 创建tbname表,--table=tbname 修改tbname表
执行迁移:php artisan migrate
重新构建迁移:php artisan migrate:refresh
执行迁移并执行数据填充:php artisan migrate:refresh --seed
每次执行迁移会在数据库中的migrations记录,该表也用于回滚迁移。
每个迁移对应一个迁移类,类中的up()函数执行迁移,down()函数回滚迁移
Laravel模型操作:
创建:
- Model::create();
- Model::insert($users);
- $model = new Model; $model->k = $v; $model->save();
删除:
- $model->delete();
- Model::where()->delete();
更新:
- $model = Model::find($id); $model->k = $v; $model->save();
- $model->where()->update([$k => $v]);
查询:
- 单个:Model::find($id),Model::where()->first();
- 多个:Model::where()->get();
- 全部:Model::all();
排序:
- $model->orderBy($field, 'desc' | 'asc') 默认为 asc
- 逆序:$model->orderByDesc($field);
Laravel模型关联函数:
一对一 关联(1<->1):
- 正向(1->1): hasOne()
- 反向(1<-1): belongsTo()
一对多关联(1<->n):
- 正向(1->n):hasMany()
- 反向(1<-1): belongsTo()
多对多关联(n<->n):
- 正向(1 ->n): belongsToMany()
- 反向(n<-1): belongsToMany()
使用关联函数返回构造器,使用关联动态属性返回关联的模型集合。
HTTP请求方法的RESTful含义
方法 | 含义 |
---|---|
GET | 获取资源 |
POST | 创建资源 |
PUT/PATCH | 更新资源 |
DELETE | 删除资源 |
Laravel资源路由
定义:Route::resource('users', 'UserController');
相当于:
方法 | 路由 | 控制器方法 | 路由名称 | 含义 |
---|---|---|---|---|
GET | /users | UserController@index | users.index | 获取资源列表 |
GET | /users/{user} | UserController@show | users.show | 获取资源 |
GET | /users/create | UserController@create | users.create | 创建资源表单页面 |
POST | /users | UserController@store | users.store | 存储资源 |
GET | /users/{user}/edit | UserController@edit | users.edit | 更新资源表单页面 |
PUT/PATCH | /users/{user} | UserController@update | users.update | 更新资源 |
DELETE | /users/{user} | UserController@destroy | users.destroy | 删除资源 |
Laravel数据库
- factory 模型工厂:生成假数据模型
- seeder 数据填充:添加假数据到数据库(一般会用到factory)
- migrate 数据库迁移:创建,修改数据库(表)
验证表单数据:
在控制器中:$this->validate($request->all(), $rules);
使用请求实例:$request->validate($rules);
使用Facades:$validator = Validator::make($request->all(), $rules);
Auth门面方法:
- attempt($creds, $isRemember) 尝试登陆
- check() 是否登陆
- user() 获取登陆用户
- id() 获取登陆用户id
- login($user) 登陆指定用户
- logout() 退出登录