2015-03-08 2 views
1

Я хочу, чтобы определить маршрут, как это:Определить маршрут Laravel с переменной частью, которая не является параметром?

Route::put('businesses/?!?/reviews/{review_id}', '[email protected]'); 

, которые соответствуют URLs, как:

businesses/-1/reviews/12or 

business/abc/review/12 

но называет BusinessController::editReview метод с только review_id аргумент:

function edit_review($review_id) { ... } 

Эффективно делает параметр ?!? обязателен, но игнорирует его значение.

EDIT: точка метода editReview должна иметь ровно один аргумент. Кроме того, я хочу, чтобы присвоить маршруту имя и назвать его только с одним аргументом:

route('business.review',['review_id'=>1]) 

EDIT: Теперь, когда я думаю об этом, что должно идти в "?!? часть с вышеуказанным route(...) звоните?

+0

Почему бы просто не добавить аргумент метода, но не использовать его? 'function edit_review ($ ignore_this, $ preview_id) {}' – lukasgeiter

+0

ну, вот и все :-) Я хочу, чтобы у него было ровно 1 аргумент по некоторым причинам, которые нельзя устранить. Кроме того, я хочу дать ему имя и называть его одним аргументом: 'route ('business.review', ['review_id' => 1])'. –

+0

Я вижу, вы уже поняли мой следующий вопрос. Что должно действительно идти в '?!?'? Может быть, это поможет, если вы объясните, что вы на самом деле хотите сделать ... – lukasgeiter

ответ

0

Это, как правило, решается с помощью вложенного контроллера (см Laravel Docs, вам нужно scoll немного вниз)

контроллер

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, чтобы узнать, что у вас есть (так как ваш пример был о редактировании, но мой должен помочь вам начать ...).

Смежные вопросы