4

おそらく基本的な質問ですが、私には理解できないようです。

URL の変数をコントローラーに取得したいと考えています。

// インデックス ビュー

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

ありがとう!

4

1 に答える 1

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
于 2013-09-27T17:21:21.933 に答える