在Laravel Controller中将查询参数添加到url

时间:2017-07-25 11:24:12

标签: php laravel laravel-5 laravel-5.2

是否可以从路径控制器中向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

编辑:请不要重定向

6 个答案:

答案 0 :(得分:0)

  

是否可以从路径控制器的URL中添加一个参数?

,有可能。 如果要转到该URL,可以重定向路由。假设路线名称为“已完成订单”,然后在控制器中执行以下操作:

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

这意味着order_number将作为查询参数附加到该路由。

  

PS:如果您指的是对路线的请求调用,而不是您应用的常规网址配置,则此答案会特别说明。

答案 1 :(得分:0)

是:

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

答案 2 :(得分:0)

只需使用redirect()->to()方法。

public function getOrderFinished(){

    // your parameter value

    $param = W00034335;

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

答案 3 :(得分:0)

你应该试试这个:

use Illuminate\Support\Facades\Redirect;


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

希望对你有所帮助!!!

答案 4 :(得分:0)

要将参数添加到您需要在路径文件中定义的URL

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

答案 5 :(得分:0)

由于所有(或大多数)答案都使用重定向,我会尝试其他方法。我觉得这是一个非常干净的方法。

在您的routes / web.php文件中,插入:

Route::get('order/{id}', 'OrderController@show');

然后在你的OrderController中,有这个:

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

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

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

修改命名约定方式!