再试一下输入一个字符串 ... movie/fargo ... 你会发现,页面上同样会显示出这个字符串 ...
如果你只想让这个 movie_id 参数是数字类型的 ... 或者字符类型 ... 或者匹配某种特定的模式 ... 我们可以使用正则表达式去设计这个模式 ...
回到 routes.php ... 在这个带参数的 route 后面 ... 使用一个 where 方法 ... 它的第一个参数是路由里的参数的名称 ... 这里就是 movie_id ..
第二个参数是一个正则表示式 .. 如果想让 movie_id 只能是数字的话,这个表达式可以这样写 ... 一组方框号 ... [0-9]+ ... 它的意思就是,movie_id 可以是 0-9 之间的任意数字 ... 并且可以是多少数字 ...
保存 .. 回到浏览器
输入 movie/22 ... 回车 ... 没有问题 ... movie/1280 ... 也可以 ... 只要是数字都是可以的 ...
再试一下字符串 ... movie/fargo ... 这回,会显示错误了 ... 因为在我们设计的这个路由里面, movie斜线后面这部分 ... 只能使用数字 ...
再回去修改一下 ... 这里改成小写的字母 a 到 z ... 保存 ...
回到浏览器 .. movie 斜线 235 ... 提示错误 ... 因为我们只允许这部分内容是小写的 a 到 z 这些字母 ...
输入 movie/fargo .... 这回是可以的 ... 你可以使用正则表达式设计出任何你想要的模式 ...
Route::get('movie/{movie_id}', function($movie_id)
{
return '电影:' . $movie_id;
})
->where('movie_id', '[a-z]+');