2016-09-26 8 views
-1

私のLaravel Webアプリケーションの1つでは、のデータベースにすべてのリクエストパラメータ(投稿と取得)を記録したいと考えています。$request->all()ユーザーがファイルをアップロードしようとすると例外が発生します。Laravelリクエストから非ファイルパラメータのみを選択する

これは、リクエストからSerializable Parametersのみを選択する方法(ポストリクエストと同様に取得するため)またはファイル以外のすべてのリクエストパラメータを選択する方法を必要とする理由です。

Request::except([])私はExceptメソッドでファイルパラメータ名を指定する必要があるため、私にとっては機能しません。あなたのケースでは

+0

パラメータがわかっている場合は、$ request-> except(['file_field_name']);を使用できます。あなたの編集には少し速かったです。 –

+0

しかし、すべてのパラメータは私にはわからないので、私は 'except'メソッドを使うことはできません... @TimvanUum –

+0

あなたの最高のオプションは、$ request-> all()をループすることです。それは拡張(ドット)付きの入力を免除するでしょう... – victor

答えて

1

回答は私にとってはうまくいかなかったので、私は多くの読書をしましたし、laravelについて掘り下げましたが、私が探していた特定の解決策を見つけることができなかったので、Laravel'sリクエストオブジェクトとそこからパラメータを引き出す私は単純にPHPの$_REQUESTパラメータを使っていました。

例:

$non_file_parameters = $_REQUEST;

$_REQUEST我々は$_FILESスーパーグローバル変数を持っているファイル用のコアPHPでファイルのパラメータだって除き、取得だけでなく、ポストのパラメータの両方があります。

あなたの努力のおかげで...

1

一回のテストのために、このデバッグコードをしてください、あなたはそれが私のプロジェクトで

$allRequestParams = array_map(function($input) { 
     return !is_array($input) ? $input : false; 
    }, $request->all()); 
    echo '<pre>'; 
    print_r($allRequestParams); 
    echo '<pre/>'; 
    die; 
2

あなたの現在の仕事で使いたいかもしれないが、私は、

以下のような多くの分野を除いて、これを使用しました
$input = $request->except('first_name', 'middle_name', 'last_name', 'address',...);  

私にとってはうまく動作します。
残りのすべての値を$入力に保存し、その入力変数の値を保存しました。

これを試してください。

関連する問題