ThinkPHP6.0-Anfrage
ThinkPHP6-Anfrage
Um das Anforderungsobjekt zu verwenden, müssen Sie die Fassadenmethode verwenden (die Klasse thinkfacadeRequest ist dafür verantwortlich). ) Durch Aufrufen von
kann die Erkennung, Erfassung und Sicherheitsfilterung globaler Eingabevariablen über das Request-Objekt
<🎜 abgeschlossen werden >- Unterstützt Systemvariablen wie
,
$_GET
,$_POST
,$_REQUEST
,$_SERVER
,$_SESSION
,$_COOKIE
und Datei-Upload-Informationen$_ENV
1. Variablenerfassung
方法 | 说明 |
param | 获取当前请求的变量 |
get | 获取 $_GET 变量 |
post | 获取 $_POST 变量 |
put | 获取 PUT 变量 |
delete | 获取 DELETE 变量 |
session | 获取 SESSION 变量 |
cookie | 获取 $_COOKIE 变量 |
request | 获取 $_REQUEST 变量 |
server | 获取 $_SERVER 变量 |
env | 获取 $_ENV 变量 |
route | 获取 路由(包括PATHINFO) 变量 |
middleware | 获取 中间件赋值/传递的变量 |
file | 获取 $_FILES 变量 |
1. GET Die Variable vom Typ Anfrage
PARAM
ist eine vom Framework bereitgestellte Variablenerfassungsmethode, um die aktuelle Anforderung automatisch zu identifizieren. Es handelt sich um die vom System empfohlene Methode zum Abrufen von AnforderungsparameternDie Methode führt die Parameter des aktuellen Anforderungstyps mit Routing-Variablen und GET-Anfragen zusammen, und die Routing-Variablen haben Priorität
param
öffentlich function edit(){ print_r( $_GET ); // Native get empfängt print_r( Request::param() ); // Alle Variablen der aktuellen Anfrage abrufenview code: index.htmlprint_r( Request::param('id') ); Holen Sie sich die ID-Variable der aktuellen Anfrage print_r( Request::get() );}
<button class="layui-btnlayui-btn-xs" onclick="edit({$right_v.id})">Bearbeiten</button>2. POST-AnfrageController-Code<script type="text/javascript">
Funktion bearbeiten(id){ layer.open({ Typ: 2, Titel: 'Hinzufügen', Farbton: 0,3, Bereich: ['480px', '440px'], Inhalt: '/index.php/index/edit?id=' id }); }</script>
öffentliche Funktion edit(){ $id = Request::param('id'); $shop = Db::table('shop_goods')->where('id',$id)->find();Code anzeigen: edit.html$cat = Db::table('shop_cat')->where('status',1)->select(); View::assign([ 'shop' => ; $shop, 'cat' => $cat ]); return View::fetch();}public function edits(){ // print_r( Request::param() ); // print_r( Request::post() );
$all = Request::param(); $update = Db::table('shop_goods')->where('id',$all['id'])->update($all); if($update){
Echo json_encode(['code'=>0,'msg'=>'Änderung erfolgreich']); }else{ echo json_encode(['code'=>1,'msg'=>'Änderung fehlgeschlagen']); }}
<!DOCTYPE html><html><head><title></title>
<link rel="stylesheet" type="text/css" href="/static/layui/css/layui.css">
<script type="text/javascript" src="/static/layui/layui.js"></script>
</head>
<body style="padding:10px;">
<form class="layui-form">
<input type="hidden" name="id" value="{$shop.id}">
<div class="layui-form-item">
<label class="layui-form-label">标题</label>
<div class="layui-input-inline">
<input type="text " class="layui-input" name="title" value="{$shop.title}">
</div>
</div>
<div class="layui-form- Artikel">
<label class="layui-form-label">分类</label>
<div class="layui-input-inline">
<select name="cat">
<option value=0 {if $shop['cat']==0} selected {/if}></option>
{volist name="cat" id="cat_v"}
<option value="{$cat_v['id']}" {if $shop['cat']==$cat_v['id']} ausgewählt {/if}>{$cat_v['name']}</option>
{/volist}
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">原价</label>
<div class="layui-input-inline">
<input type="text" class="layui-input" name="price" value="{$shop.price}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">折扣</label> ;
<div class="layui-input-inline">
<input type="text" class="layui-input" name="discount" value="{$shop.discount}" >
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">库存</label>
<div class="layui-input-inline">
<input type="text " class="layui-input" name="stock" value="{$shop.stock}">
</div>
</div>
<div class="layui-form- Artikel">
<label class="layui-form-label">状态</label>
<div class="layui-input-inline">
<select name="status">
<option value="1" {if $shop['status']==1} selected {/if}>开启</option>
<option value="2" {if $shop['status']==2} selected {/if}>关闭</option>
</select>
</div>
</div>
</form>
<div class="layui-form-item">
<div class="layui-input-block" >
<Schaltfläche class="layui-btn" onclick="save()">保存</button>
</div>
</div>
<script type="text/javascript">
layui.use(['layer','form'],function(){
form =layui.form;
layer =layui.layer;
$ =layui.jquery;
});
function save(){
$.post('/index.php/Index/edits',$('form').serialize(),function(res){
if(res.code>0){
layer.alert(res.msg,{icon:2});
}else{
layer.msg(res.msg);
setTimeout(function(){parent.window.location.reload();},1000);
}
},'json');
}
</script>
</body>
</html>
3、变量修饰符
序号 | 修饰符 | 作用 |
1 | s | 强制转换为字符串类型 |
2 | d | 强制转换为整型类型 |
3 | b | 强制转换为布尔类型 |
4 | a | 强制转换为数组类型 |
5 | f | 强制转换为浮点类型 |
Request::get('id/d'); Request::post('name/s'); Request::param('price/f');
2. Anfragetyp
方法 | 说明 |
method | 获取当前请求类型 |
has | 判断传值是否存在 |
isGet | 判断是否GET请求 |
isPost | 判断是否POST请求 |
isPut | 判断是否PUT请求 |
isDelete | 判断是否DELETE请求 |
isAjax | 判断是否AJAX请求 |
isPjax | 判断是否PJAX请求 |
isJson | 判断是否JSON请求 |
isMobile | 判断是否手机访问 |
isHead | 判断是否HEAD请求 |
isPatch | 判断是否PATCH请求 |
isOptions | 判断是否OPTIONS请求 |
isCli | 判断是否为CLI执行 |
isCgi | 判断是否为CGI模式 |
1、Methode
öffentliche Funktion edit(){
if(Request::method() == 'POST'){
// print_r(Request::method());exit;
$all = Request::param();
$update = Db::table('shop_goods')->where('id',$all['id'])->update( $all);
if($update){
echo json_encode(['code'=>0,'msg'=>'修改成功']);
}else{
echo json_encode(['code'=>1,'msg'=>'修改失败']);
}
}else{
// print_r(Request::method());exit;
$id = Request::param('id');
$shop = Db::table('shop_goods')- >where('id',$id)->find();
$cat = Db::table('shop_cat')->where('status',1)->select();
View::assign([
'shop ' => $shop,
'Katze' => $cat
]);
return View::fetch();
}
}
三、示例:增加数据
controller代码
public function add(){
if(Request::method() == 'POST'){
$all = Request::param();
$insert = Db::table('shop_goods')->insert($all);
if($insert){
echo json_encode(['code'=>0,'msg'=>'添加成功']);
}else{
echo json_encode(['code'=>1,'msg'=>'添加失败']);
}
}else{
$cat = Db::table('shop_cat')->where('status',1)->select();
View::assign([
'cat' => ; $cat
]);
return View::fetch();
}
}
view代码:add.html
<!DOCTYPE html>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="/static/layui/css/layui.css">
<script type="text/javascript" src="/static/layui/layui.js"></script>
</head>
<body style="padding:10px;">
<form class="layui-form">
<div class="layui-form-item">
<label class="layui-form-label">标题</label>
<div class="layui-input-inline">
<input type="text" class="layui-input" name="title" value="">
< ;/div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">分类</label> ;
<div class="layui-input-inline">
<select name="cat">
<option value=0 selected></option>
{volist name="cat" id="cat_v"}
<option value="{$cat_v['id']}">{$cat_v['name']}</option> ;
{/volist}
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">原价</label> ;
<div class="layui-input-inline">
<input type="text" class="layui-input" name="price" value="">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">折扣</label>
<div class="layui-input-inline">
<input type="text" class="layui-input" name="discount" value="">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">库存</label>
<div class="layui-input-inline">
<input type="text" class="layui-input" name="stock" value="">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">状态</label>
<div class="layui-input-inline">
<select name="status">
<option value="1" selected>开启</option>
<option value="2">关闭</option>
</select>
</div>
</div>
</form>
<div class="layui-form-item">
<div class="layui-input-block" >
<Schaltfläche class="layui-btn" onclick="save()">保存</button>
</div>
</div>
<script type="text/javascript">
layui.use(['layer','form'],function(){
form =layui.form;
layer =layui.layer;
$ =layui.jquery;
});
function save(){
$.post('/index.php/Index/add',$('form').serialize(),function(res){
if(res.code>0){
layer.alert(res.msg,{icon:2});
}else{
layer.msg(res.msg);
setTimeout(function(){parent.window.location.reload();},1000);
}
},'json');
}
</script>
</body>
</html> ;
四、示例:删除数据
Controller代码
public function del(){
$id = Request::param('id');
$delete = Db::table('shop_goods')->where('id' ,$id)->delete();
if($delete){
echo json_encode(['code'=>0,'msg'=>'删除成功']);
}else{
echo json_encode(['code'=>1,'msg'=>'删除失败']);
}
}
view代码: index.html
<button class="layui-btnlayui-btn-dangerlayui-btn-xs" onclick="del({$right_v.id})">删除</button>
<script type=" text/javascript">
function del(id){
layer.confirm('确定要删除吗?', {
icon:3,
btn: ['确定','取消']
}, function(){
$.post('/index.php/index/del',{'id':id},function(res){
if(res. Code>0){
layer.alert(res.msg,{icon:2});
}else{
layer.msg(res.msg);
setTimeout(function(){window.location.reload();},1000);
},'json');
5. Informationen anfordern
Seriennummer | Methode | Anleitung |
1 | Host | Aktueller Zugriffsdomänenname oder IP |
2 | Schema | Aktuelles Zugriffsprotokoll |
3 | Port | Derzeit aufgerufener Port |
4 | remoteP ort | REMOTE_PORT der aktuellen Anfrage |
5 | Protokoll | aktuelle Anfrage SERVER_PROTOCOL |
6 | contentType | CONTE der aktuellen Anfrage NT_TYPE |
7 | Domäne | Domänenname, der derzeit das Protokoll enthält |
8 | subDomain | Derzeit besuchte Subdomain-Name |
9 | panDomain | Derzeit besuchte generische Domänenname |
10 | rootDomain | Derzeit besuchte Root-Domänenname |
11 | URL | Aktuelle vollständige URL |
12 | Basis URL | Aktuelle URL (außer QUERY_STRING) |
13 | Abfrage | QUERY_STRING-Parameter der aktuellen Anfrage |
14 | baseFile | Aktuell ausgeführte Datei |
15 | Stammverzeichnis | URL-Zugriffs-Stammadresse |
16 | rootUrl | URL-Zugriff auf Stammverzeichnis |
17 | Pfadinfo | Die Pfadinfo-Informationen der aktuell angeforderten URL (einschließlich URL-Suffix) |
18 | ext | Zugriffssuffix der aktuellen URL |
19 | Zeit | Erhalten Sie die Zeit der aktuellen Anfrage |
20 | Typ | Der Ressourcentyp der aktuellen Anfrage |
21 | Methode | Aktueller Anforderungstyp |
22 | Regel | Derzeit angeforderte Routingobjektinstanz |
23 | Controller | Aktuell angeforderter Controllername |
24 | Aktion | Der aktuell angeforderte Vorgangsname |
print_r( Request::host() ); print_r( Request::url() ); print_r( Request::controller() ); print_r( Request::action() );
6. HTTP-Header-Informationen
Beim Namen der HTTP-Anfrage-Header-Informationen wird die Groß-/Kleinschreibung nicht beachtet und _ wird automatisch in -
print_r( Request::header() ); print_r( Request::header('accept_encoding') );konvertiert