2017-03-10 6 views
-1

私のAPIの更新メソッドaを書いています。私は要求されたフィールドを更新する必要があります。 ı要求されたフィールドのみを取得して更新しようとしています。しかし、以下のコードは文字列に$ fillをキャストしてもnullを返します。

 foreach ($fillableFields as $fill){ 
      $customerId->$fill = $request->get("$fill") ; 

編集 - 1

私のコードは以下のようです。

$fillableFields = array('lastname','firstname'); 

私がdd($ fill)を返すとnullが返されます。

+0

あなたは私たちに 'の出力を表示することができます$ fillableFields'、 '$ customerId'、' '$ request'はどうですか? –

+0

ただ質問を更新しました – Gvep

+0

$ customerIdはどのように定義されていますか? –

答えて

0

お使いの方法は次のとおりです。

public function yourMethod(Request $request) 
{ 
    try { 
     foreach ($fillableFields as $fill){ 
      $customerId->$fill = $request->get($fill) ; 
     } 

     } 

    } catch (\Exception $ex) { 

    } 
} 
+0

私はそれを試してもまだ動作しませんでした。それは私のフィールドを更新しません – Gvep

0

リクエストパラメータを取得する最良の方法は、下記のlaravelの公式ドキュメントで提供されています。

お客様の特定のニーズに応じてリクエストパラメータを取得することができます。

以下のステートメントを使用すると、属性として指定されたパーメータだけを配列(例:ユーザー名、パスワード)として取得できます。

$input = $request->only(['username', 'password']); 

特定のフィールドを除くすべてのフィールドを取得する場合は、exceptパラメータで以下のように定義できます。例:以下を使用すると、credit_card以外のすべてのフィールドを取得できます。リクエストパラメータの詳細については

$input = $request->except('credit_card'); 

公式ドキュメントのURLを参照してください。https://laravel.com/docs/5.4/requests

1

あなたがオブジェクトを更新するsave()メソッドを呼び出すために忘れてしまった:

foreach ($fillableFields as $fill){ 
     $customerId->$fill = $request->get($fill); 
     $customerId->save(); 
    } 
+0

あなたの興味のために非常にありがとう、それは郵便配達員とlaravelのためだった。郵便配達員では、私はフォームデータをx-www-form-urlencodedの代わりに使用していました。 – Gvep

+0

よろしくお願いいたします。 –

関連する問題