0

私は他の多くの人々と同様の船に乗っています... CodeigniterからLaravelに来ています。

データベースの検索を実行し、結果を正しく取得しています。また、ページネーションも正しく機能しています。(一度に 30 件しか表示されず、残りの結果のリンクが一番下に表示されます)

コントローラーの get 関数によって呼び出されている部品検索ビューから開始します。結果を取得しているコントローラーにポスト関数があります。(URLはまだ部品検索になりますが、投稿機能を引っ張っています)

問題は、ページ 6 (URI は parts-search?page=6) を選択すると、最初の parts-search ページをプルする関数に戻されることです。

私は次のようなことをしなければならないと言いたいです:

Route::any('parts-search?page=(:any)')

しかし、同じ検索変数を維持する方法や、クエリを毎回実行する必要があるかどうかはわかりません。

これらは私のファイルです:

ルート.php

Route::controller('home');

Route::get('/', function()
{
    return View::make('home');
});

Route::get('parts-search', 'home@parts_search');

Route::post('parts-search', 'home@parts_search');

home.php (コントローラー)

public $restful = true;

public function get_index()
{
    return View::make('home');
}

public function get_parts_search()
{
    return View::make('part-search');
}

public function post_parts_search()
{
    if (Input::get('part_search'))
    {
        $term = Input::get('part_search');
        $parts = Part::where('part', 'LIKE',  $term.'%')
            ->order_by('part', 'asc')
            ->paginate(30);

        return View::make('results')
        ->with('parts', $parts)
        ->with('term', $term);
    }
    else
    {
        return View::make('part-search')
            ->with('error', '<h1>Please enter a search term</h1>');
    }

}

直接の回答と私が学ぶ場所の両方をいただければ幸いです...そして、これは私にとってLaravelの3日目であるため、コースの修正はありません。ありがとう!

だから私はそれが間違いなくルーティングの問題であることを確認しましたが、どこから始めるべきかについてのかすかな手がかりがありません. そして、私は一日中Googleの神々に尋ねてきましたが、役に立ちませんでした.

4

1 に答える 1

0

これが一般に、検索クエリを GET リクエストとして実行し、検索キーワードが URI に表示される理由です。ほとんどのアプリケーションは、スタック オーバーフローでさえ、この方法でそれを行います。

ページを変更するときにクエリ文字列を維持するには、ページネーション リンクに追加できます

于 2012-11-17T07:08:26.507 に答える