2017-12-05 6 views
0

Ich habe diese öffentliche Funktion unten, aber ich muss einen ähnlichen Code in etwa 60 anderen Orten, ich schreiben Ich möchte mich nicht wiederholen, ich möchte in der Lage sein, eine einzige Funktion zu schreiben, so dass alles, was ich ändern muss, "Dailysaving ::" und "00: 00: 00" ist, wenn ich die Funktion benutze. Und bitte beachten Sie, dass ich mehrere andere Zeitplanbefehle erstellen werde, für die diese Funktion funktionieren soll. Wie gehe ich bitte darüber und wo soll ich die Funktion platzieren die ich schreibe Und wie greife ich auf verschiedene Modelle von der Funktion zu. Vielen Dank im Voraus für jeden, der mir helfen wird. public function handle() { Wie schreibe ich eine einzelne Funktion in Laravel, die für verschiedene Controller oder Zeitplan Befehle verwendbar und Zugriff auf verschiedene Fassaden von Modellen

$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(); Dies sollte Arbeit –

+0

Verwandte Frage https://StackOverflow.com/Questions/28290332/best-practices-for-custom-Helper-on-Laravel-5 –

Antwort

0

Wie ich verstehe Sie versuchen, benutzerdefinierte Hilfefunktionen zu machen.

So müssen Sie helpers.php mit Ihren Funktionen erstellen und folgen Sie den Anweisungen in der folgenden Antwort: https://stackoverflow.com/a/28290359/5407558

Verwandte Themen