我想定义一条这样的路线:
Route::put('businesses/?!?/reviews/{review_id}', 'BusinessesController@editReview');
匹配网址:
businesses/-1/reviews/12or
business/abc/review/12
但仅使用BusinessController::editReview
参数调用review_id
方法:
function edit_review($review_id) { ... }
有效地使?!?
部分成为强制性但忽略其价值。
编辑:关键是editReview方法应该只有一个参数。此外,我想给路线命名并用一个参数调用它:
route('business.review',['review_id'=>1])
编辑:现在我想起来了,应该进入什么样的?!?'部分上述route(...)
电话?
答案 0 :(得分:0)
这通常使用嵌套控制器来解决(请参阅Laravel Docs,您需要稍微降低一点)
<强>控制器强>
class BusinessReviewController extends BaseController {
public function show($businessId, $reviewId)
{
//
}
}
<强>路线强>
Route::resource('businesses.reviews', 'BusinessReviewController');
这使您可以按照自己的意愿调用路线(businesses/1/reviews/12
或route('business.review',['businessId' => 1, 'reviewId' => 12])
)
基本上,这是一个像往常一样的ResourceController,具有普通ResourceController所具有的所有路由。只需运行php artisan routes
即可查看您的内容(因为您的示例是关于编辑的,但我的应该让您开始......)。