Laravel5 控制器

Posted toney-yang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel5 控制器相关的知识,希望对你有一定的参考价值。

Request

一、取值

1.取值

echo $request->input(‘name‘,‘这是默认值‘);

2.取得所有值

$array=$request->all();

3.判断值是否存在

if ($request->has(‘name‘)){
    echo $request->input(‘name‘,‘默认值‘);
}else{
    echo ‘不存在该值‘;
}

二、判断请求类型

1.直接返回请求类型

echo $request->method();

2.判断是否为某种请求类型

$bool=$request->isMethod(‘get‘);

3.判断是否为ajax请求

$bool=$request->ajax();

4.判断是否为指定的url路径

// *代表request下任意路径
$bool=$request->is(‘request/*‘);

Session

使用session之前,先要开启session。在laravel中,配置如下:

Route::group([‘middleware‘=>[‘web‘]],function (){
    Route::get(‘session1‘,[email protected]);
    Route::get(‘session2‘,[email protected]);
});

一、HTTP Request session

1.赋值

$request->session()->put(‘key1‘,‘val1‘);

2.取值

echo $request->session()->get(‘key1‘);

二、Session辅助函数

1.赋值

session()->put(‘key1‘,‘val1‘);

2.取值

echo session()->get(‘key1‘);

三、Session类

1.赋值

// 存单个值
Session::put(‘key3‘,‘val3‘);
// 以数组形式存
Session::put([‘key4‘=>‘val4‘]);
// 存session数组
Session::push(‘student‘,‘tom‘);
Session::push(‘student‘,‘mary‘);

2.取值

// 取单个值
echo Session::get(‘key3‘,‘默认值‘);
// 取session数组
$array=Session::get(‘student‘,‘默认值‘);
// 取一次之后删除session
$array=Session::pull(‘student‘,‘默认值‘);
// 取出所有session值
$array=Session::all();

3.判断是否存在指定session

if (Session::has(‘key2‘)){
  $array=Session::all();
  dd($array);
}else{
  echo ‘不存在‘;
}

4.删除指定session

Session::forget(‘key1‘);

5.清空session

Session::flush();

5.暂存session(只存储一次,下次访问消失)

Session::flash(‘flash-key‘,‘flash-val‘);

Response

Response响应的常见类型:字符串、视图、json、重定向

一、响应json

$data=[
    ‘errCode‘=>0,
    ‘errMsg‘=>‘success‘,
    ‘data‘=>‘tom‘
];
// response辅助函数
return response()->json($data);
// response类
return Response::json($data);

二、重定向

1.重定向到指定页面

路由设置

Route::get(‘news‘,[email protected])->name(‘iNews‘);
Route::get(‘response‘,[email protected]);

控制器下的方法

public function response()
{
   // 1.url形式
   return redirect(‘news‘)->with(‘message‘,‘一次性数据‘);
   // 2.action
   return redirect()->action([email protected])->with(‘message‘,‘一次性数据‘);
   // 3.route
   return redirect()->route(‘iNews‘)->with(‘message‘,‘一次性数据‘);
}
public function news()
{
    return Session::get(‘message‘);
}

2.重定向到上级页面

return redirect()->back();

以上是关于Laravel5 控制器的主要内容,如果未能解决你的问题,请参考以下文章

需要一种有效的方法来避免使用 Laravel 5 重复代码片段

laravel5.4 后台控制器提示前台显示问题

Laravel 5 野狗 API 控制器

Laravel:如何在控制器的几种方法中重用代码片段

关于laravel5.2仓库的建立,以及简单调用

laravel5.4学习--laravel目录结构