2017-05-01 17 views
0

リクエスト変数をフォームリクエストから別のコントローラに渡そうとしています(2番目のコントローラにはたくさんのコードが含まれていますので、メインコントローラクリーン)、しかし、私がしようとすると、変数を渡す、何も起こらない、変数のデータは送信されません。コントローラから別のlaravelに変数を渡す5.4

class mainController extends Controller{ 

public function store(Request $request) 
    { 
     //validation 


     $otherClass = (new secondController)->createDBEntry($request); 
    } 

} 

class secondController extends Controller{ 

public function createDBEntry($request) 
    { 
     return $request; 
    } 

} 

しかし、何もsecondControllerに$リクエストから渡されない:

は、ここに私の現在のコードです。もし私がsecondControllerに何かをエコーし​​ても何の問題もないので、呼び出されていますが、データは送られていません。私はここで何が欠けていますか?私はlaravelにかなり新しいことを心に留めて、私は5.4を使用しています。

+0

あなたは「データがオーバー送信されていない」とはどういう意味ですか?エラーが発生していますか? 'ヌル'? – louisfischer

+0

@louisfischerエラーはありません。空白のページだけです。 –

+0

あなたは何も返されていません。しかし、あなたのコードはうまくいくはずです。 '$ otherClass =(new secondController ...')の行の後に 'dd($ otherClass);を追加してみてください。 – louisfischer

答えて

0

コードは正常に動作します。あなただけ起こるだろうことはありません行動を期待しているかの理由:

  1. new secondControllersecondController

  2. createDBEntry($request)が返された値が中に保存されている$request

  3. と を通過した方法createDBEntry呼び出してインスタンス化します変数$otherClass

それだけです!それ以上のことは起こっていません。あなたは(そしてあなたのコードが動作参照)$otherClassの値を確認したい場合、あなたはそれを返すことがあります。

class mainController extends Controller 
{ 
    public function store(Request $request) 
    { 
     $otherClass = new secondController 
     $otherClass->createDBEntry($request); 

     return $otherClass; 
    }  
} 

class secondController extends Controller 
{ 
    public function createDBEntry($arg) 
    { 
     return $arg; 
    } 
} 
関連する問題