Controller
request
请求(使用的是symfony\http-foundation组件)
$_GET
$_POST
$_COOKIE
$_FILES
$_SERVER
获取请求中的值
echo $request->input('name');
echo $request->input('sex','weizhi');
if ($request->has('name')){
echo $request->input('name');
}else{
echo '无';
}
echo '<pre>';
$req=$request->all();
// dd($req);
// 判断请求类型
echo $request->method();
if ($request->isMethod('GET')){
echo 'true';
}else{
echo 'false';
}
$req= $request->ajax();
dd($req);
//判断是否是该路径
$req=$request->is('student/*');
var_dump($req);
echo $request->url();
Session
Session是提供一种保存用户数据的方法
内置支持Memcached、Redis和数据库的后端驱动。默认使用“file”的Session驱动
配置文件在config/session.php中
HTTP request类的session()方法
session()辅助函数
//存储数据到session
// session()辅助函数
$request->session()->put('name','lcy');
//获取session的值
echo $request->session()->get('name');
session()->put('name','lcy1');
echo session()->get('name');
Session facade
// Session facade
Session::put('name','lcy2');
//不存在则取默认值
echo Session::get('name2','default');
//以数组的形式存储数据
Session::put(['name2'=>'lcy3']);
echo Session::get('name2','default');
//把数据放到session的数组中
Session::push('student','sean');
Session::push('student','lcy4');
$res=Session::get('student','default');
// dd($res);
//取出数据并删除(删除数组)
$res=Session::pull('student','default');
var_dump($res);
// 取出所有的值
$res=Session::all();
// dd($res);
//判断session的某个key是否存在
if(Session::has('name3')){
$res=Session::all();
// dd($res);
}else{
echo '啦啦啦啦';
}
//暂时存在
Session::flash('key-flash','val-flash');
//删除session中键值对
Session::forget('name');
//清空所有session信息
Session::flush();
$res=Session::all();
// dd($res);
echo Session::get('key-flash');
Respense
字符串
视图
Json
//3.响应Json
$data=[
'errCode'=>0,
'errMsg'=>'success',
'data'=>'sean',
'name'=>'lcy',
];
return response()->json($data);
重定向
return redirect('session2');
//4.重定向 跳到session2之后不再变回response
// return redirect('session2')->with('message','lcy');
// return redirect()->action('StudentController@session2')
// ->with('message','lcy');
// return redirect()->route('session2')
// ->with('message','lcy');
//返回上一个页面
return redirect()->back();
Middleware
Middleware中间件提供一个方便的机制来过滤进入应用程序的HTTP请求
场景
有一个活动,在指定日期后开始,如果活动没开始,只能访问宣传页面
新建中心件
新建文件
使用中心件
//活动宣传页面
Route::any('activity0',['uses'=>'StudentController@activity0']);
Route::group(['middleware'=>['activity']],function (){
Route::any('activity1',['uses'=>'StudentController@activity1']);
Route::any('activity2',['uses'=>'StudentController@activity2']);
});
//Route::any('activity3',['uses'=>'StudentController@activity3']);
中心件的前置和后置操作
<?php
namespace App\Http\Middleware;
use Closure;
class Activity{
// //前置操作
// public function handle($request,Closure $next)
// {
// if (time() < strtotime('2020-11-30')) {
//
// return redirect('activity0');
// }
// return $next($request);
// }
//后置操作
public function handle($request,Closure $next){
$response=$next($request);
// if (time() < strtotime('2020-11-30')) {
// return redirect('activity3');
// }
// echo $response;
return $response;
}
}
注册中心件
protected $routeMiddleware = [
'activity' => \App\Http\Middleware\Activity::class,
];
报错:
Warning: include(E:\phpworkspace\larabbs): failed to open stream: Permission denied in E:\phpworkspace\larabbs\vendor\composer\ClassLoader.php on line 444
//报错解决:
E:\phpworkspace>composer install
Composer could not find a composer.json file in E:\phpworkspace
To initialize a project, please create a composer.json file as described in the https://getcomposer.org/ “Getting Started” section
E:\phpworkspace>cd larabbs
E:\phpworkspace\larabbs>composer install
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Nothing to install, update or remove
Package jakub-onderka/php-console-color is abandoned, you should avoid using it. Use php-parallel-lint/php-console-color instead.
Package jakub-onderka/php-console-highlighter is abandoned, you should avoid using it. Use php-parallel-lint/php-console-highlighter instead.
Package mtdowling/cron-expression is abandoned, you should avoid using it. Use dragonmantank/cron-expression instead.
Package fzaninotto/faker is abandoned, you should avoid using it. No replacement was suggested.
Package phpunit/php-token-stream is abandoned, you should avoid using it. No replacement was suggested.
Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested.
Generating optimized autoload files
Carbon 1 is deprecated, see how to migrate to Carbon 2.
https://carbon.nesbot.com/docs/#api-carbon-2
You can run “.\vendor\bin\upgrade-carbon” to get help in updating carbon and other frameworks and libraries that depend on it.
Illuminate\Foundation\ComposerScripts::postAutoloadDump
@php artisan package:discover
Discovered Package: fideloper/proxy
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Package manifest generated successfully.
32 packages you are using are looking for funding.