## 资源路由的生成
Laravel 的资源控制器使得构建围绕资源的 RESTful 控制器变得毫无痛苦,例如,你可能想要在应用中创建一个控制器,用于处理关于图片存储的 HTTP 请求,使用 Artisan 命令 make:controller,我们可以快速创建这样的控制器:
~~~
php artisan make:controller PhotoController --resource
~~~
这个控制器包含了每一个资源操作对应的方法。对应的资源路由写法如下
~~~
Route::resource('photo', 'PhotoController');
~~~
执行完以后生成如下控制器\app\Http\Controllers\PhotoController.php
~~~
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
class PhotoController extends Controller
{
/**
* 显示资源的列表。
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}
/**
* 显示用于创建新资源的表单。
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* 将新创建的资源存储在存储中。
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
*显示指定的资源。
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
*显示用于编辑指定资源的表单。
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* 更新存储中指定的资源。
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* 从存储中删除指定的资源。
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
~~~
## RESTFul 输出
### 传值
使用助手函数提供的 response 方法
~~~
if (! function_exists('response')) {
/**
* Return a new response from the application.
*
* @param string $content
* @param int $status
* @param array $headers
* @return \Symfony\Component\HttpFoundation\Response|\Illuminate\Contracts\Routing\ResponseFactory
*/
function response($content = '', $status = 200, array $headers = [])
{
$factory = app(ResponseFactory::class);
if (func_num_args() === 0) {
return $factory;
}
return $factory->make($content, $status, $headers);
}
}
~~~
方法的使用
~~~
$data=[
'id'=>200,
'name'=>'laravel',
];
return response($data);
~~~
或则直接返回data值
~~~
return $data;
~~~
### 传视图
~~~
return view('index');
~~~
### 返回用户上一级操作
~~~
return back();
~~~
### 传视图携带参数
视图函数携带值
~~~
$data=[
'id'=>200,
'name'=>'laravel',
];
return view('index',compact('data'));
~~~
> #### compact解释说明:
> 定义:
> array compact ( mixed $varname1 [, mixed $... ] )
> 创建一个包含变量及其值的数组。
> 对于其中每一个,compact()在当前符号表中查找具有该名称的变量,并将其添加到输出数组,以使变量名成为键,变量的内容成为该键的值。 简而言之,它与extract()的相反。
> 任何未设置的字符串将被简单地跳过。
> 实例说明:
> 当 return $data;输出结果
> {"id":200,"name":"laravel"}
> 当 return compact('data');输出结果
> {"data":{"id":200,"name":"laravel"}}
> 由此可见:compact函数吧data数据添加一个索引
with携带
~~~
return view('index')->with('data',$data);
~~~
with携带参数返回用户之前的操作
~~~
return back()->with('key','value!');
~~~
函数所在位置\vendor\laravel\framework\src\Illuminate\Http\RedirectResponse.php
| | |
| --- | --- |
| 函数 | 说明 |
|withCookies | 向响应中添加多个Cookie。 |
|withInput|Flash an array of input to the session.|
|withErrors| 将一个容器的错误发送到会话。|