获取在 URL Laravel 中传递的变量

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/19056484/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-14 08:29:28  来源:igfitidea点击:

Getting Variables Passed In URL Laravel

urllaravelurilaravel-4

提问by Nick8675

Probably a basic question but I can't seem to get it.

可能是一个基本问题,但我似乎无法理解。

I am wanting to grab the variable in my url to my controller.

我想将我的 url 中的变量抓取到我的控制器。

// index view

// 索引视图

@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');

// Controller

// 控制器

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);
    }
}

When you click on the link it goes to www.domain.com/printpackingslip?order_id=3

当您单击该链接时,它会转到 www.domain.com/printpackingslip?order_id=3

I do not know how to grab the order_id=3 in my controller.

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

Also would I be better off using the :(num) to generate a URI of /printpackingslip/3 or does it not matter?

另外,我最好使用 :(num) 生成 /printpackingslip/3 的 URI 还是没关系?

For example:

例如:

// in my first view have:

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

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

// then my route:

// 然后我的路线:

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

Thanks!

谢谢!

回答by Antonio Carlos Ribeiro

Is this Laravel 4? Let's review it all:

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

Route:

路线:

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

Controller:

控制器:

class AdminController extends BaseController {

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

View:

看法:

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