2017-01-19 5 views
0

にビューにnullを返します私は私のdevのはリクエスト::クエリ(「sort_by」)は常にLaravel 5.3

をmachine⁠⁠⁠⁠⁠⁠in Requestクラスを使用して、ビューでクエリパラメータを取得する非常に奇妙な問題を抱えています

⁠⁠⁠⁠Request::query('sort_by')⁠⁠⁠⁠それは

⁠⁠(DevEnv: ⁠⁠⁠MacOS PHP 7.0⁠⁠⁠ Laravel Valet 2)⁠⁠ しかし⁠⁠⁠

⁠⁠⁠⁠actual value⁠⁠⁠⁠を返します。

production⁠⁠⁠で、それは常に⁠⁠⁠⁠null⁠⁠⁠⁠

⁠⁠(ProdEnv: ⁠⁠⁠Ubuntu 16.04 PHP 7.0⁠⁠⁠ NGINX)⁠⁠

を返す私はすでに、ブラウザでURLにこの文字列を持っている

I have this query strings in the URL in browser already

+0

リクエストURLを表示できますか? –

+0

いくつかのコードや方法を投稿できますか? – Dev

+0

の表示 私はこのコードを持っています{{Request :: query( 'sort_by')}} – msonowal

答えて

3

Iあなたのコードについて私はあなたが使用することができます示唆していると確信していません

$collection=collect(⁠⁠⁠⁠Request::all()); 
$data=$collection->sortByDesc('yourfieldname'); 
OR 
$data=$collection->sortBy('yourfieldname'); 
+0

私はコントローラーで見ることができますが、ビューの中には表示されません。 – msonowal

+0

ビューの前にスラッシュを追加してください。 \ Request :: all()OR request() - > all()ORリクエストオブジェクトをコントローラからビューに渡す –

0

私は、だから私はこれにそれを変更し、私はクエリはあなたがいる

location/{ 
    try_files $uri $uri/ /index.php?$query_string; 
} 
location ~ \.php$ { 
    include snippets/fastcgi-php.conf; 
    fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    include fastcgi_params; 
} 
1

パラメータ取得しています

NGINX設定/サーバブロックは、いくつかの固定具を必要とする犯人だったことが判明間違ったことをする。あなたのコントローラーでこれを行います。

public function yourController() 
{ 
    list($sortBy, $order) = explode('-', request()->get('sort_by')); 
    $sortedModel = YourModel::get()->orderBy($sortBy, $order); 

    // $sortedModel contain the collection with desired sorting order 
} 

これは基本的なアプローチです。

しかし、私はそうあなたのコントローラにあなたがimplodeする必要はありません

/new_arrivals?sortby=price&order=desc 

としてルートを使用することをお勧めしたいと思います。

$sortBy = request()->get('sortby'); 
$order = request()->get('order'); 

のようにパラメータを割り当てることができます。はるかにクリーンです。 ordering grouping limit and offsetの詳細情報

+0

私は間違っていません。コントローラでソートしていますが、ビューには入力がありません。最後のフィルタ選択が何であったか、それがnullを返すことを示します – msonowal