使用不是参数的可变部分定义Laravel路线?

时间:2015-03-08 17:21:51

标签: url laravel routing

我想定义一条这样的路线:

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(...)电话?

1 个答案:

答案 0 :(得分:0)

这通常使用嵌套控制器来解决(请参阅Laravel Docs,您需要稍微降低一点)

<强>控制器

class BusinessReviewController extends BaseController {

    public function show($businessId, $reviewId)
    {
        //
    }

}

<强>路线

Route::resource('businesses.reviews', 'BusinessReviewController');

这使您可以按照自己的意愿调用路线(businesses/1/reviews/12route('business.review',['businessId' => 1, 'reviewId' => 12])

基本上,这是一个像往常一样的ResourceController,具有普通ResourceController所具有的所有路由。只需运行php artisan routes即可查看您的内容(因为您的示例是关于编辑的,但我的应该让您开始......)。