2017-05-10 8 views
1

この奇妙なエラーのために私のすべてのジョブが失敗し、問題が何であるか把握できません。Laravel |キューに失敗しました:App Jobs SendCollectionSMSの引数1がありません:

仕事

:私のfailed_jobsテーブル でのエラーから

{ 
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; 

/** 
* Create a new job instance. 
* 
* @return void 
*/ 
public $fName, $lName, $colAmt, $colDate, $totalAmt, $balAmt, $dueDate, $mobile_no, $is_loan_complete; 

public function __construct($fName, $lName, $colAmt, $colDate, $totalAmt, $balAmt, $dueDate, $mobile_no, $is_loan_complete) 
{ 
    // 
    $this->fName = $fName; 
    $this->lName = $lName; 
    $this->colAmt = $colAmt; 
    $this->colDate = $colDate; 
    $this->totalAmt = $totalAmt; 
    $this->balAmt = $balAmt; 
    $this->dueDate = $dueDate; 
    $this->mobile_no = $mobile_no; 
    $this->is_loan_complete = $is_loan_complete; 
} 

/** 
* Execute the job. 
* 
* @return void 
*/ 
public function handle($fName, $lName, $colAmt, $colDate, $totalAmt, $balAmt, $dueDate, $mobile_no, $is_loan_complete) 
{ 
    // 

      $username = "xxxxxxxxxx"; 
     $hash = "xxxxxxxxxxxxxxxxxxxxxxxxx"; 

     // Config variables. Consult http://api.textlocal.in/docs for more info. 
     $test = "0"; 

     // Data for text message. This is the text message data. 
     $sender = "xxxxx"; // This is who the message appears to be from. 
     $numbers = $mobile_no; // A single number or a comma-seperated list of numbers 

     $message = "Dear ".$fName." ".$lName.", your payment of Rs. ".$colAmt." has been received on ".$colDate.". 
    Total: Rs. ".$totalAmt.", Balance: ".$balAmt.", Due Date: ".$dueDate.". Thank You"; 
     // 612 chars or less 
     // A single number or a comma-seperated list of numbers 
     $message = urlencode($message); 

     $data = "username=".$username."&hash=".$hash."&message=".$message."&sender=".$sender."&numbers=".$numbers."&test=".$test; 
     $ch = curl_init('http://api.textlocal.in/send/?'); 
     curl_setopt($ch, CURLOPT_POST, true); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     echo $result = curl_exec($ch); // This is the result from the API 
     curl_close($ch); 
     $this->pusher($result); 


} 

私はハンドル機能も

例外がスローされた引数のエラーにより実行されないことに注意してください

exception 'ErrorException' with message 'Missing argument 1 for App\Jobs\SendCollectionSMS::handle()' in C:\xampp\htdocs\financetest1\app\Jobs\SendCollectionSMS.php:42 Stack trace: #0 C:\xampp\htdocs\financetest1\app\Jobs\SendCollectionSMS.php(42): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(2, 'Missing argumen...', 'C:\\xampp\\htdocs...', 42, Array) #1 [internal function]: App\Jobs\SendCollectionSMS->handle() #2 C:\xampp\htdocs\financetest1\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php(30): call_user_func_array(Array, Array) #3 C:\xampp\htdocs\financetest1\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php(87): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}() #4 C:\xampp\htdocs\financetest1\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php(31): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure)) #5 C:\xampp\htdocs\financetest1\vendor\laravel\framework\src\Illuminate\Container\Container.php(531): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL) #6 C:\xampp\htdocs\financetest1\vendor\laravel\framework\src\Illuminate\Bus\Dispatcher.php(94): Illuminate\Container\Container->call(Array) #7 C:\xampp\htdocs\financetest1\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(114): Illuminate\Bus\Dispatcher->Illuminate\Bus\{closure}(Object(App\Jobs\SendCollectionSMS)) #8 C:\xampp\htdocs\financetest1\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(102): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(App\Jobs\SendCollectionSMS)) #9 C:\xampp\htdocs\financetest1\vendor\laravel\framework\src\Illuminate\Bus\Dispatcher.php(98): Illuminate\Pipeline\Pipeline->then(Object(Closure)) #10 C:\xampp\htdocs\financetest1\vendor\laravel\framework\src\Illuminate\Queue\CallQueuedHandler.php(43): Illuminate\Bus\Dispatcher->dispatchNow(Object(App\Jobs\SendCollectionSMS), NULL) #11 C:\xampp\htdocs\financetest1\vendor\laravel\framework\src\Illuminate\Queue\Jobs\Job.php(69): Illuminate\Queue\CallQueuedHandler->call(Object(Illuminate\Queue\Jobs\DatabaseJob), Array) #12 C:\xampp\htdocs\financetest1\vendor\laravel\framework\src\Illuminate\Queue\Worker.php(291): Illuminate\Queue\Jobs\Job->fire() #13 C:\xampp\htdocs\financetest1\vendor\laravel\framework\src\Illuminate\Queue\Worker.php(258): Illuminate\Queue\Worker->process('database', Object(Illuminate\Queue\Jobs\DatabaseJob), Object(Illuminate\Queue\WorkerOptions)) #14 C:\xampp\htdocs\financetest1\vendor\laravel\framework\src\Illuminate\Queue\Worker.php(110): Illuminate\Queue\Worker->runJob(Object(Illuminate\Queue\Jobs\DatabaseJob), 'database', Object(Illuminate\Queue\WorkerOptions)) #15 C:\xampp\htdocs\financetest1\vendor\laravel\framework\src\Illuminate\Queue\Console\WorkCommand.php(101): Illuminate\Queue\Worker->daemon('database', 'default', Object(Illuminate\Queue\WorkerOptions)) #16 C:\xampp\htdocs\financetest1\vendor\laravel\framework\src\Illuminate\Queue\Console\WorkCommand.php(85): Illuminate\Queue\Console\WorkCommand->runWorker('database', 'default') #17 [internal function]: Illuminate\Queue\Console\WorkCommand->fire() #18 C:\xampp\htdocs\financetest1\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php(30): call_user_func_array(Array, Array) 

私はコールインしていますグラムのようなコントローラからの仕事:(以下のコードで混乱して申し訳ありませんが、それは動作します)

dispatch(new SendCollectionSMS(ucwords($collection->loan->customer->first_name), ucwords($collection->loan->customer->last_name), $collection->collected_amount, Carbon::parse($collection->created_at)->format('d-m-Y'), $collection->loan->loan_amount, ($collection->loan->loan_amount - $collection->loan->collected_amount), Carbon::parse($collection->loan->end_date)->format('d-m-Y'), $collection->loan->customer->mobile_no, false)); 

は今、私は私のコントローラに新しいジョブを作成するときに、私は渡してい引数が適切であることを肯定していますが、これ私のハンドラの変数を参照する方法に問題があるようです。

ここで何が問題になりますか?

+1

どこからこのメソッドを呼び出していますか? –

+0

@ B.Desai私の編集を見てください –

答えて

1

これは非常に古い投稿ですが、この問題に遭遇した人は誰でも可能です。

あなたのハンドル機能を使用すると、以下のようにそれらを呼び出すことによって、あなたの変数を取得することができ、この関数内の任意の変数

public function handle() 

を必要としません

$this->fName 

あなたはまだ「行方不明引数に遭遇した場合1 "問題:職人のコマンドを再開する

php artisan queue:work 

これは、キュー:作業がすでに実行されている場合は、ジョブファイルを変更しても効果がないことがわかりました。

関連する問題