web-dev-qa-db-ja.com

Laravel5応答 "HTTPステータスコード" 1 "は無効です。"

大規模なデータに対する大規模でシンプルな結合クエリがあります。 dd()またはvar_dump()を使用してクエリ結果を出力すると、結果が得られますが、結果データを渡すかリダイレクトすると、次の例外が発生します。

「HTTPステータスコード「1」は無効です。」

ここにアクションコードがあります:

public function postSearch(Request $request)
{
    $min_price  = !empty($request['min_price']) ? $request['min_price'] : 500;
    $max_price  = !empty($request['max_price']) ? $request['max_price'] : 50000000000;

    $properties = DB::table('properties')
                ->join('addresses', function($join) {
                    $join->on('properties.id', '=', 'addresses.property_id');
                })
                ->where('status', '=', 1)
                ->where('category', '=', $request['search_category'])
                ->where('type', '=', $request['contract'])
                ->where('city', '=', $request['search_city'])
                ->where('area', '=', $request['property_area'])
                ->where('bed_room', '=', $request['search_bedroom'])
                ->where('bath_room', '=', $request['bath_room'])
                ->whereBetween('price', [$min_price, $max_price])
                ->orderBy('properties.updated_at', 'desc')
                ->paginate(15);
    try {
        if(!empty($properties))
        {
            return Redirect::to('property/search', compact('properties'));
        }
        else
        {
            return Redirect::to('/')->with('message', PropertyHelper::formatMessage(trans('property.property_not_found'), 'danger'));
        }
    }
    catch(\Exception $ex) {
        dd($ex->getMessage());
    }

}
9
user3976041

検索後に検索結果を表示してみてください。問題はこの行です。

return Redirect::to('property/search', compact('properties'));

検索結果を取得したら、リダイレクトではなくビューを呼び出す必要があります。

return view('property.search', compact('properties'));

ただし、viewファイルがあることを確認してください。

ソース

24
mininoz

また、Laravel 5では、リダイレクトで名前付きルートを使用するのを忘れてしまうと、次のようになります。

return redirect('users.overview', ['id' => $id]); // Error

の代わりに:

return redirect()->route('users.overview', ['id' => $id]);
2
Rav

同じ問題がありました。

Elseブロックのようにwith()を使用してみてください:

return Redirect::to('property/search')->with(compact('properties'))

さらに、Laravel 5以降では、次のように単純にredirect()ヘルパーを使用できます:

return redirect('property/search')->with(compact('properties'))
1
kirly

モデルで間違ったパラメーターを渡したため、私も同じ状況に遭遇しました

public static $rules = array(       
    'id' => 'required',
);
0

私も同じような問題を抱えていました。 Laravel 5.1ドキュメント のように、リダイレクトは次のようにパラメーターをもたらすことができます:

return redirect('yourRoute')->with('param', 'value');

次に、ビューでパラメーターをエコーし​​ます。

@if (session('param'))
    {{ session('param') }}
@endif
0
a.barbieri