'Create a function that can be used by other functions

I have a block of code that seems to use repetitive parameters, is there any way for me to simplify my code? I was thinking of create a function that can be used by multiple methods but I dont have any idea on how to start.

public function index(Request $request) 
{
    return view(
        '/FPXMain/seller2DReceiver', 
        ['fpx_msgType'=>$request->fpx_msgType,
         'fpx_msgToken'=>$request->fpx_msgToken,
         'fpx_sellerExId'=>$request->fpx_sellerExId,
         'fpx_sellerExOrderNo'=>$request->fpx_sellerExOrderNo,
         'fpx_fpxTxnTime' => date("ymdHis"),
         'fpx_sellerTxnTime' => date("ymdHis"),
         'fpx_sellerOrderNo' =>$request->fpx_sellerOrderNo,
         'fpx_sellerId' => $request->fpx_sellerId,
         'fpx_sellerBankCode' => $request->fpx_sellerBankCode,
         'fpx_txnCurrency' => $request->fpx_txnCurrency,
         'fpx_txnAmount'=> $request->fpx_txnAmount,
         'fpx_buyerEmail'=> $request->fpx_buyerEmail,
         'fpx_checkSum'=> $request->fpx_checkSum,
         'fpx_buyerName'=> $request->fpx_buyerName,
         'fpx_buyerBankId' => $request->fpx_buyerBankId,
         'fpx_buyerBankBranch'=> $request->fpx_buyerBankBranch,
         'fpx_buyerAccNo'=> $request->fpx_buyerAccNo,
         'fpx_buyerId' => $request->fpx_buyerId,
         'fpx_makerName'=>$request->fpx_makerName,
         'fpx_buyerIban' => $request->fpx_buyerIban,
         'fpx_version' => $request->fpx_version, 
         'fpx_debitAuthNo'=>'999999999',
         'fpx_creditAuthNo'=>'999999999',
         'fpx_productDesc'=> $request->fpx_productDesc,
        'isLoggedIn'=>'']
    );
}
/**
 * Show login page
 * 
 * @param $request request
 * 
 * @return return view
 */
public function showLogin(Request $request)
{
    return view(
        '/maybank/login', 
        ['fpx_msgType'=>$request->fpx_msgType,
         'fpx_msgToken'=>$request->fpx_msgToken,
         'fpx_sellerExId'=>$request->fpx_sellerExId,
         'fpx_sellerExOrderNo'=>$request->fpx_sellerExOrderNo,
         'fpx_fpxTxnTime' => date("ymdHis"),
         'fpx_sellerTxnTime' => date("ymdHis"),
         'fpx_sellerOrderNo' =>$request->fpx_sellerOrderNo,
         'fpx_sellerId' => $request->fpx_sellerId,
         'fpx_sellerBankCode' => $request->fpx_sellerBankCode,
         'fpx_txnCurrency' => $request->fpx_txnCurrency,
         'fpx_txnAmount'=> $request->fpx_txnAmount,
         'fpx_buyerEmail'=> $request->fpx_buyerEmail,
         'fpx_checkSum'=> $request->fpx_checkSum,
         'fpx_buyerName'=> $request->fpx_buyerName,
         'fpx_buyerBankId' => $request->fpx_buyerBankId,
         'fpx_buyerBankBranch'=> $request->fpx_buyerBankBranch,
         'fpx_buyerAccNo'=> $request->fpx_buyerAccNo,
         'fpx_buyerId' => $request->fpx_buyerId,
         'fpx_makerName'=>$request->fpx_makerName,
         'fpx_buyerIban' => $request->fpx_buyerIban,
         'fpx_version' => $request->fpx_version, 
         'fpx_debitAuthNo'=>'999999999',
         'fpx_creditAuthNo'=>'999999999',
         'fpx_productDesc'=> $request->fpx_productDesc,
         'isLoggedIn'=>''
        ]
    );
}

I'm very new to laravel and php, and still learning my way around this. Hope someone can help! Thanks.



Solution 1:[1]

In your case, you can try:

return view(
    '/FPXMain/seller2DReceiver', 
    get_object_vars($request) + 
    [
      'fpx_fpxTxnTime' => date("ymdHis"),
      'fpx_sellerTxnTime' => date("ymdHis"),
      'fpx_debitAuthNo'=>'999999999',
      'fpx_creditAuthNo'=>'999999999'
      'isLoggedIn'=>''
    ]
);

get_object_vars will convert object to array.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1