Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
檀越@新空间
Coding Tree
提交
49e1de6a
C
Coding Tree
项目概览
檀越@新空间
/
Coding Tree
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
Coding Tree
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
49e1de6a
编写于
7月 17, 2022
作者:
彭世瑜
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix
上级
52e60998
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
190 addition
and
2 deletion
+190
-2
blog/laravel/index.md
blog/laravel/index.md
+5
-1
blog/laravel/model-relation-write2.md
blog/laravel/model-relation-write2.md
+134
-0
blog/laravel/request.md
blog/laravel/request.md
+50
-0
index.html
index.html
+1
-1
未找到文件。
blog/laravel/index.md
浏览文件 @
49e1de6a
...
...
@@ -48,5 +48,9 @@ dev:
[
模型的关联写入
](
/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
\ No newline at end of file
[
请求和依赖注入
](
/blog/laravel/request.md
)
https://www.bilibili.com/video/BV1gE411j78F?p=34&spm_id_from=pageDriver&vd_source=efbb4dc944fa761b6e016ce2ca5933da
\ No newline at end of file
blog/laravel/model-relation-write2.md
0 → 100644
浏览文件 @
49e1de6a
# 模型多对多的关联写入
```
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]
```
blog/laravel/request.md
0 → 100644
浏览文件 @
49e1de6a
# 请求和依赖注入
```
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
index.html
浏览文件 @
49e1de6a
...
...
@@ -25,7 +25,7 @@
}
.sidebar
ul
li
a
{
font-size
:
1
6
px
;
font-size
:
1
4
px
;
}
:root
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录