如何在Laravel 5.2中转换URL?

时间:2016-10-17 20:30:05

标签: laravel laravel-5.2

我的框架是laravel 5.2,我的网站购买机票

from:伊朗伊玛目霍梅尼国际(IKA)德黑兰。

to:伦敦(LON),英国。

date:航班日期。

adult:2个人,child:1个人,infant:0个人。

当前网址为:

http://localhost:8000/flights?from=IKA&to=LON&date=2016-11-25&adult=2&child=1&infant=0

我想更改此网址:

http://localhost:8000/flights/IKA-LON/2016-11-25/2-1-0

我如何实现这一目标?

3 个答案:

答案 0 :(得分:1)

您的路线看起来像

Route::get('/flights/{from}-{to}/{date}/{adult}-{child}-{infant}', 'YourController@details');

控制器

public function details($from, $to, $date, $adult, $child, $infant)
{

}

答案 1 :(得分:1)

第一步是为你的新网址var productos = []; $.ajax({ url: '/api/facturacion/productos', method: 'get', success: function (data) { if(data) { for(var i=0; i<data.length; i++) { productos.push({ id: data[i].id, text: data[i].descripcion }); } } } }).then(function() { $(`#nombre_${articuloId}`).select2({ data: productos, language: 'es' }); });

route

接下来,您需要阅读控制器中的网址内容

答案 2 :(得分:1)

作为一种更严格的替代方案,您的路线可以像这样注册:

Route::get('flights/{from}-{to}/{date}/{people}', function ($from, $to, $date, $people) {
    list($adults, $children, $infants) = explode('-', $people);
    dd([$from, $to, $date, $adults, $children, $infants]);
})->where([
    'date'=>'\d{4}\-\d{2}\-\d{2}',
    'people'=>'[0-9]+\-[0-9]+\-[0-9]+'
]);

这可确保您的路线在被识别为有效之前包含正确的格式。