Здравствуйте,Несколько моделей маршрут аргументов в одном маршруте в Laravel 5.2
для начала, я действительно пытался Google это. Но невозможно использовать шаблон аргумента маршрута более одного раза в одном маршруте. Моя цель - подтверждение аргумента в определении маршрута для маршрутов, таких как/resource/{uuid}/subresource/{uuid}, без необходимости вручную проверять эти аргументы в контроллере.
Давайте предположим, что мы имеем:
$router->pattern('uuid', '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}');
отлично работает для маршрутов как
$router->get('/payment/{uuid}', '[email protected]');
$router->get('/users/{uuid}', '[email protected]');
//etc..
НО
$router->get('/users/{uuid}/order/{uuid}', '[email protected]');
выдает ошибку:
"Route pattern "https://stackoverflow.com/users/{uuid}/order/{uuid}" cannot reference variable name "uuid" more than once."
Кажется, законно. Но я просто хочу, чтобы проверить аргументы регулярных выражений СУХИХ и другие подходы, как показано ниже не работает слишком:
$router->get('/users/{userId}/order/{orderId}', '[email protected]')
->where(['userId' => 'uuid', 'orderId' => 'uuid']);
// or
$router->get('/users/{userId:uuid}/order/{orderId:uuid}', '[email protected]');
// ..and vice versa
Единственное, что работает это:
$router->get('/users/{userId}/order/{orderId}', '[email protected]')
->where(['userId' => '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}', 'orderId' => '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}']);
... но я действительно не Хочешь пройти этот путь. На самом деле это единственный способ.
Кто-нибудь знает какой-то трюк, как применить шаблон аргумента маршрута несколько раз?
Спасибо, любая помощь будет оценена ...
Спасибо за ваш ответ. На самом деле, у меня есть определение шаблона в методе «Router :: boot». И да, это тоже. Но представьте, что API будет иметь десятки конечных точек, и вы не хотите определять шаблон uuid для каждого '' Id ". Путь может быть чем-то вроде определения 'resrouceId' и' subresourceId' как uuids, но все же я чувствую, что что-то плохое с вселенной. Вероятно, я открою запрос о проблеме/функции и дам вам знать. –
rudolfdobias
Я думаю, что вы правы, мне тоже нужно подумать, и я собирался заглянуть в представление PR, чтобы разрешить именованные шаблоны параметров. У меня была эта точная проблема в API, который я создал, который использует UUID для большого количества ресурсов. – edcs
Открыл [выпуск] (https://github.com/laravel/framework/issues/13442) .. мы увидим – rudolfdobias