2017-12-05 2 views
0

私はこのpublic関数を以下に示しますが、私は約60の他の場所に同様のコードを書く必要があります。むしろ自分自身を繰り返したいとは思わないので、私は変更を必要とするすべてが「Dailysaving ::」であり、その機能を使うたびに「00:00:00」というような単一の関数を書くことができるようにしたい。そして、私はこの関数がうまくいくいくつかの他のスケジュールコマンドを作成する予定であることに注意してください。どうすればいいのか、私が書く関数をどこに置くのか、関数から異なるモデルにアクセスするにはどうすればいいですか?私を助けてくれる人には事前に感謝します。 パブリック関数ハンドル(){ さまざまなコントローラやスケジュールコマンドに使用できる1つの関数をlaravelに書くにはどうすればいいですか?

$users= Dailysaving::where('debit_time', '00:00:00')->where('status', 'Active')->get(); 
    //die($users); 
    foreach ($users as $user) { 
     $email = $user->email; 
     $amount = $user->amount_daily * 100; 
     //Let's know where the payment is on the db 
     $user_id = $user->user_id; 
     $savings_id = $user->id; 
     $auth_code= $user->authorization_code; 
     // 

     $metastring = '{"custom_fields":[{"user_id":'. $user_id. '}, {"action": "activatedaily"},{"savings_id": '.$savings_id.'},{"savingstype": "dailysavings"}]}'; 
     $curl = curl_init(); 

     curl_setopt_array($curl, array(
      CURLOPT_URL => "https://api.paystack.co/transaction/charge_authorization", 
      CURLOPT_RETURNTRANSFER => true, 
      CURLOPT_CUSTOMREQUEST => "POST", 
      CURLOPT_POSTFIELDS => json_encode([ 
       'amount'=>$amount, 
       'email'=>$email, 
       'authorization_code' =>$auth_code, 
       'metadata' => $metastring, 
      ]), 
      CURLOPT_HTTPHEADER => [ 
       "authorization:Bearer sk_test_656456h454545", 
       "content-type: application/json", 
       "cache-control: no-cache" 
      ], 
     )); 

     $response = curl_exec($curl); 
     $err = curl_error($curl); 


     if($err){ 

      $failedtranx = new Failedtransaction; 

      $failedtranx->error = $err; 
      $failedtranx->save(); 
     } 
     if($response) { 

      $tranx = json_decode($response); 

      if (!$tranx->status) { 

       // there was an error contacting the Paystack API 
       //register in failed transaction table 
       $failedtranx = new Failedtransaction; 

       $failedtranx->error = $err; 
       $failedtranx->save(); 
      } 


      if ('success' == $tranx->data->status) { 


       $auth_code = $tranx->data->authorization->authorization_code; 
       $amount = ($tranx->data->amount)/100; 
       $last_transaction = $tranx->data->transaction_date; 

       $payment_ref = $tranx->data->reference; 


       $record = new Transactionrecord; 

       $record->payment_ref = $payment_ref; 
       $record->save(); 
       //saving complete 
       //die('saved'); 

       $item = Dailysaving::find($savings_id); 
       $total_deposit = $item->total_deposit + $amount; 
       $item->total_deposit = $total_deposit; 
       $item->last_transaction_date = date('Y-m-d H:i:s'); 
       $target = $item->day_target; 
       if ($target == $total_deposit) { 
        $item->status = 'Completed'; 
       } 

       $item->save(); 


      } 

      echo 'done'; 
     } 
     else{ 
      echo 'failed'; 
     } 
    } 

} 
+0

ます$ this-> yourfunction();これは仕事でなければならない –

+0

関連する質問https://stackoverflow.com/questions/28290332/best-practices-for-custom-helpers-on-laravel-5 –

答えて

0

私はあなたがカスタムヘルパー関数を作成しようとしている理解しています。

つまり、あなたの関数でhelpers.phpを作成し、以下の回答で指示に従ってください必要があります。https://stackoverflow.com/a/28290359/5407558

関連する問題