像之前我们为某个资源定义的这些路由,这种形式很常见 .. 所以有个更简单的方法为资源定义路由 ... 用一下 Route 的 resource 方法去定义一个资源路由 ..
先把资源的名字告诉这个方法,这里就是 posts ... 然后是处理对资源的请求用的控制器的名字 .. 我们要用的是 PostController ..
这样就可以把上面定义的所有这些跟 posts 资源相关的路由删除掉 .. 只用一个 resource 路由就行了 ..
Route.resource('posts', 'PostController')
再到客户端这里可以试一下 .. get 一下 posts 地址,返回一个 List of posts .. 再 get 一下 posts ,后面加上资源的 id 号 .. 返回的是 you're watching post x ..
效果跟之前我们单独定义的路由是一样的 .. get 一下 posts .. 资源 id ,再加上一个 edit .. 返回的是 editing post x
有时候我们的资源只需要提供一些接口,就是请求资源的时候只返回相关的数据,数据的格式一般是 json .. 比如在创建前端应用,或者移动端应用的时候,可以使用资源的接口 ..
这种情况,我们可能就不再需要创建,还有编辑资源用的表单了 .. 这样在定义这种资源路由的时候,可以再用一下 apiOnly .. 它会去掉创建还有编辑资源用的路由 ..
再回到客户端,get 一下 posts ,资源 id,加 edit 这个地址 .. 这回服务端返回的状态是 404 .. 意思是没找到请求的资源 ..
或者,我们也可以用一个 only,明确地设置一下需要的路由 .. 一个数组 .. 比如需要一个 index .. 还有 show ..
这样就只能请求资源的列表,还有单个资源了 .. 对资源的其它类型的请求都会返回 404 ...
也可以使用一下 except 方法 .. 设置一下不需要的路由 .. 同样是个数组 .. 里面可以设置一下不需要的路由 .. 比如添加一个 index .. 这样在客户端那里除了不能请求 post 资源的列表以外,其它的事情都可以做 ..