我正在使用Laravel 5并在我的本地服务器上工作.

Route::get('contacts/{id}', 'ContactController@get_contact');
Route::get('contacts/new', 'ContactController@new_contact');

这里我的问题是,如果我try 访问localhost/Contacts/new,它将自动访问get_contact方法.我知道我已经创建了一个{id}参数,但是如果我只想在我的参数是整数的情况下调用Get_Contact,该怎么办?如果不是,则判断它是否为"new",并访问new_contact方法.然后,如果它不是整数,也不是"新的",则错误页404.

在拉威尔5号我怎么能做到?

谢谢你的帮助!

推荐答案

Just add ->where('id', '[0-9]+') to route where you want to accept number-only parameter:

Route::get('contacts/{id}', 'ContactController@get_contact')->where('id', '[0-9]+');
Route::get('contacts/new', 'ContactController@new_contact');

阅读更多:http://laravel.com/docs/master/routing#route-parameters

Laravel相关问答推荐

在Laravel Lumen中迭代连接查询数据

Livewire 基于下拉 Select 自动填充输入框

Laravel 9 如何将 url 中的参数从一个控制器传递到另一个控制器?

1 子编译中的警告(使用'stats.children:true'和'--stats-children'了解更多详细信息)

Laravel 6 Passport 在错误的凭证上返回 400 Bad request

Laravel belongsToMany 关系在两个表上定义本地键

Laravel Request::input 调用未定义的方法

Laravel:每当我返回一个模型时,总是返回一个与它的关系

在表单中添加一对多 - Backpack laravel

使用数据库用户提供程序时如何在 Laravel 中创建密码重置方法

如何在 Laravel 中实现数组类型路由?

Laravel 控制器构造

Laravel 说 Auth guard [] 没有定义

如何在 laravel 中解码 Json 对象并在 laravel 中应用 foreach 循环

laravel:Eloquent的例子将数据插入数据库

Laravel 模型:模型属性在哪里?

在 Laravel 5 控制器中找不到类App\Http\Controllers\DB

如何在 Laravel 测试中禁用选定的中间件

Laravel 中的 isDirty() 是什么意思?

错误:找不到模块 'webpack/lib/rules/DescriptionDataMatcherRulePlugin' 需要堆栈: