2017-07-25 87 views
0

是否可以从路由控制器向url添加参数?将查询参数添加到Laravel控制器中的url

例如我的网址是:myshop.com/order-finished

而且他的方法控制是:

getOrderFinished() { 
    // I want add this param 
    myshop.com/order-finished?order_number=W00034335 
} 

我想最后的网址myshop.com/order-finished? order_number = W00034335,但我必须从控制器方法中添加参数order_number

编辑:没有重定向请

+1

是的,这是可能的,使用重定向 – Kyslik

+0

重写规则将帮助你这样做。 – Gunnrryy

回答

0

是否有可能设置了一个param添加到从路由控制器的网址是什么?

,这是可能的。 如果您想要转到该网址,您可以重定向路线。说出路线名称为“订单完成”然后你可以做以下的控制器:

return redirect()->route('order-finished', ['order_number'=>'W00034335']); 

的含义是,ORDER_NUMBER将被附加作为查询参数来这条路线。

PS:如果您指的是请求调用某个路由,而不是您应用的一般url配置,则此答案具体为。

+0

并生成一个新的网址与参数使用: 'url('route',['order_number'=>'W00034335']);';) – Maraboc

+0

它不会是正确的做到这一点,有一种行为它给你第二个参数的数组值作为url的路径参数,所以上面的例子给出了......'spagepage/route/W00034335' –

0

是:

redirect('order-finished?order_number=W00034335'); 
0

简单,使用redirect()->to()方法。

public function getOrderFinished(){ 

    // your parameter value 

    $param = W00034335; 

    return redirect()->to('myshop.com/order-finished?order_number='.$param); 
} 
0

你应该试试这个:

use Illuminate\Support\Facades\Redirect; 


$paramData = 'W00034335'; 
return Redirect::to('/order-finished?order_number='. $paramData); 

希望这有助于为你!

0

要将参数添加到您需要的答案是使用重定向在路由文件

<?php 
Route::get('/order-finished/order_number/{id}', [ 
       'as' => 'front.order.detail', 
       'uses' => '[email protected]' 
      ]); 
{{ route('front.order.detail',$order['id']) }} 
?> 
0

由于所有(或大部分)来定义的URL,我会尝试别的东西。我觉得这是一个非常干净的方法。

在你的路由/ web.php文件,插入此:

Route::get('order/{id}', '[email protected]'); 

,然后在OrderController,有这样的:

public function show($id) 
    { 
     $order = Order::find($id); 

     return view('orders.show')->with('order', $order); 
    } 

这是路由的基本思想,你可以找到在文档here中。

修改命名约定你将会怎样!