“e9549cbb78b01a570ded56b54cd1f5a0e5f44f12”上不存在“paddle/legacy/trainer/tests/config_parser_test.py”
提交 49e1de6a 编写于 作者: 彭世瑜's avatar 彭世瑜

fix

上级 52e60998
...@@ -48,5 +48,9 @@ dev: ...@@ -48,5 +48,9 @@ dev:
[模型的关联写入](/blog/laravel/model-relation-write.md) [模型的关联写入](/blog/laravel/model-relation-write.md)
[模型多对多的关联写入](/blog/laravel/model-relation-write2.md)
https://www.bilibili.com/video/BV1gE411j78F?p=32&spm_id_from=pageDriver&vd_source=efbb4dc944fa761b6e016ce2ca5933da [请求和依赖注入](/blog/laravel/request.md)
\ No newline at end of file
https://www.bilibili.com/video/BV1gE411j78F?p=34&spm_id_from=pageDriver&vd_source=efbb4dc944fa761b6e016ce2ca5933da
\ No newline at end of file
# 模型多对多的关联写入
```php
class User extends Model
{
protected $table = 'user';
//多对多关联
public function roles()
{
return $this->belongsToMany(Role::class, 'user_role', 'user_id', 'role_id');
}
}
class Role extends Model
{
protected $table = 'role';
}
```
多对多的新增:
```php
// 得到要添加权限的用户
$user = User::find(1);
// 得到权限的 id,比如超级管理员
$roleId = 1;
// 设置成超级管理员
$user->roles()->attach($roleId);
```
```sql
select * from `user` where `user`.`id` = ? limit 1
-- [1]
insert into `user_role` (`role_id`, `user_id`) values (?, ?)
-- [1,1]
```
给中间表附加detail字段的数据,可以使用第二参数
```php
$user = User::find(1);
$user->roles()->attach(1, ['detail'=> '备注']);
```
```sql
select * from `user` where `user`.`id` = ? limit 1
-- [1]
insert into `user_role` (`detail`, `role_id`, `user_id`) values (?, ?, ?)
-- ["备注",1,1]
```
移出某个用户的角色权限
```php
// 删除一个角色权限
$user->roles()->detach(1);
// PS:如果不指定中间表 id,那么就移出这个用户的所有权限角色;
```
```sql
select * from `user` where `user`.`id` = ? limit 1
-- [1]
delete from `user_role` where `user_role`.`user_id` = ? and `user_role`.`role_id` in (?)
-- [1,1]
```
批量处理
```php
// 这里传递的是角色权限表的 ID
$user->roles()->attach([1,2,3]);
$user->roles()->detach([1,2,3]);
```
```sql
select * from `user` where `user`.`id` = ? limit 1
-- [1]
insert into `user_role` (`role_id`, `user_id`) values (?, ?), (?, ?), (?, ?)
-- [1,1,2,1,3,1]
```
```sql
sql: select * from `user` where `user`.`id` = ? limit 1
-- [1]
delete from `user_role` where `user_role`.`user_id` = ? and `user_role`.`role_id` in (?, ?, ?)
-- [1,1,2,3]
```
同步关联,已存在不在新增
```php
$user->roles()->sync([1,2,3])
```
```sql
select * from `user` where `user`.`id` = ? limit 1
-- [1]
select * from `user_role` where `user_role`.`user_id` = ?
-- [1]
insert into `user_role` (`role_id`, `user_id`) values (?, ?)
-- [1,1]
insert into `user_role` (`role_id`, `user_id`) values (?, ?)
-- [2,1]
insert into `user_role` (`role_id`, `user_id`) values (?, ?)
-- [3,1]
```
更新指定roleId的额外字段
// 更新中间表的额外字段
```php
$user->role()->updateExistingPivot(1, ['detail'=>'喀']);
```
```sql
select * from `user` where `user`.`id` = ? limit 1
-- [1]
update `user_role` set `detail` = ? where `user_role`.`user_id` = ? and `role_id` in (?)
-- ["喀",1,1]
```
# 请求和依赖注入
```php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class TaskController extends Controller
{
// 自动得到 Request 对象,这个就是注入
public function index(Request $request)
{
return [
// 请求参数
'name'=> $request->input('name'),
// 全部请求参数
'all'=> $request->all(),
// 请求路径
'uri'=> $request->path(),
'url'=> $request->url(),
'fullUrl'=> $request->fullUrl(),
// 判断HTTP请求的方式
'isGet'=> $request->isMethod('GET'),
// 判断当前的uri是否匹配
'isTask'=> $request->is('task/*'),
];
}
}
```
请求地址:
```
http://127.0.0.1:8000/task?name=Tom&age=23
```
```json
{
"name": "Tom",
"all": {
"name": "Tom",
"age": "23"
},
"uri": "task",
"url": "http://127.0.0.1:8000/task",
"fullUrl": "http://127.0.0.1:8000/task?age=23&name=Tom",
"isGet": true,
"isTask": false
}
```
\ No newline at end of file
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
} }
.sidebar ul li a { .sidebar ul li a {
font-size: 16px; font-size: 14px;
} }
:root { :root {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册