先输入一个 movie/369 ... 这个地址里的 369 就是路由里的 movie_id 这个参数的值 .. 再试一下,把这个数字换成一个字符串 .. fargo .. 在返回的结果里同样会包含这个字符串类型的参数的值 ...
在路由里我们可以使用正则表示式来限制参数的值的类型 .. 回到编辑器,找到这个路由 .. 在它的后面用一个小箭头符号 ... 再加上一个 where 方法 .. 它的第一个参数是要限制的参数 .. 输入一个 movie_id ..
第二个参数是一个正则表达式 ..
比如我想让 movie_id 的值只能是字母 .. 可以这样 .. 用一组方括号 .. A-Z .. a-z .. 方括号外面再加上一个加号 .. 表示可以是任意数量的字符 .. 保存 .. 回到浏览器 .. 刷新一下 ..
现在 movie_id 这个参数的值是一个字符串 .. 没有问题 ... 再把它换成一个数字 ... 369 .. 这回就报错了 .. 因为我们限制了 movie_id 参数的值只能是字母 ..
回到编辑器 .. 如果你想让它只能是数字的话 .. 可以用一个 0-9 .. 再修改一下,下面这个路由 .. 在这个路由里有两个参数.. 先用一个 -> where .. 限制多个参数 .. 可以使用一个数组 .. 数组里的项目先是参数的名字 .. 用一个 movie_id .. 大箭头 .. 然后是正则表达式,也就是参数的值必须要匹配的一种模式 .. 设置成 [0-9]+ .. 逗号分隔一下 .. 再设置一下 review_id 这个参数 .. 我们也让它只能是数字 .. [0-9]+ ..
保存 ... movie/369/review/hello .. 报错了.. 因为 review_id 这个参数的值只能是数字 .. 换成数字 3 .. 这次可以正常返回内容 .. 因为路由里的参数的值的类型都符合我们的设置 ...