获取在URL Laravel中传递的变量

时间:2013-09-27 17:13:28

标签: url laravel uri laravel-4

可能是一个基本问题,但我似乎无法得到它。

我想把我的网址中的变量抓到我的控制器。

//索引视图

@foreach ($paymentInfos as $p)
        <tr>
             <td><a href="{{ URL::action('AdminController@getPackingSlip', array('order_id' => $p->order_id)) }}"> {{ $p->order_id }}</a></td>
             <td>{{ $p->lastname }} {{ $p->firstname }}</td>
             <td>{{ $p->buyer_email }}</td>
        </tr> 
      @endforeach

// route

Route::get('printpackingslip', 'AdminController@getPackingSlip');

//控制器

class AdminController extends BaseController {

    /**
     * Display a listing of the resource.
     *
     * @return Response
     */
    public function getPackingSlip()
    {

        $rules = array('order_id' => 'order_id');


        return View::make('admin.packingslip')->with($rules);
    }
}

当您点击链接时,请访问www.domain.com/printpackingslip?order_id=3

我不知道如何在我的控制器中获取order_id = 3.

我最好还是使用:(num)来生成/ printpackingslip / 3的URI,还是不重要?

例如:

//在我的第一个视图中有:

<td><a href="{{ URL::to('printpackingslip', array('order_id' => $p->order_id)) }}"> {{ $p->order_id }}</a></td>

//然后我的路线:

Route::get('printpackingslip/(:num)', 'AdminController@getPackingSlip');

谢谢!

1 个答案:

答案 0 :(得分:10)

这是Laravel 4吗?让我们回顾一下:

路线:

Route::get('printpackingslip/{order_id}', 'AdminController@getPackingSlip');

控制器:

class AdminController extends BaseController {

    public function getPackingSlip($order_id)
    {
        return "you selected $order_id";
    }
}

查看:

@foreach ($paymentInfos as $p)
   ...
   <td><a href="{{ URL::route('printpackingslip', array('order_id' => $p->order_id)) }}"> {{ $p->order_id }}</a></td>
   ...
@endforeach