Posts tagged with laravel-7

Illuminate\Contracts\Container\BindingResolutionException Unable to resolve dependency [Parameter #0 [ $customerId ]] in class App\Jobs\BudgetFetch

namespace App\Http\Controllers; use App\Jobs\BudgetFetch; use Google\Ads\GoogleAds\Lib\OAuth2TokenBuilder; use Google\Ads\GoogleAds\Lib\V3\GoogleAdsClientBuilder; use Illuminate\Support\Facades\DB; class APIController extends Controller{     public function index(){         $clients = DB::table('account_names')->pluck('code');         foreach($clients as $customerId) {             budgetFetch::dispatch($customerId);         }     } } 

The above is a simple controller I've put together to trigger another job which is;

namespace App\Jobs; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; use Google\Ads\GoogleAds\Lib\OAuth2TokenBuilder; use Google\Ads\GoogleAds\Lib\V3\GoogleAdsClientBuilder; class BudgetFetch implements ShouldQueue{     use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;     /**      * Create a new job instance.      *      * @return void      */     public function __construct(){     }     /**      * Execute the job.      *      * @return void      */     public function handle($customerId){         $clientId = "xxxxxxxxxxxx";         $clientSecret = "xxxxxxxxxxx";         $refreshToken = "xxxxxxxxxxxxxxxxxx";         $developerToken = "xxxxxxxxxxxxxxxxxx";         $loginCustomerId = "xxxxxxxxxxx";         $oAuth2Credential = (new OAuth2TokenBuilder())             ->withClientId($clientId)             ->withClientSecret($clientSecret)             ->withRefreshToken($refreshToken)             ->build()         ;         $googleAdsClient = (new GoogleAdsClientBuilder())             ->withDeveloperToken($developerToken)             ->withLoginCustomerId($loginCustomerId)             ->withOAuth2Credential($oAuth2Credential)             ->build()         ;         $googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient();         $query = 'SELECT campaign.id, campaign.name, metrics.cost_micros, campaign_budget.amount_micros FROM campaign ORDER BY campaign.id';         /** @var GoogleAdsServerStreamDecorator $stream */         $stream =             $googleAdsServiceClient->searchStream($customerId, $query);         foreach ($stream->iterateAllElements() as $googleAdsRow) {             /** @var GoogleAdsRow $googleAdsRow */             $metrics = $googleAdsRow->getMetrics();             $id = $googleAdsRow->getCampaign()->getId()->getValue();             $name = $googleAdsRow->getCampaign()->getName()->getValue();             $spend = $googleAdsRow->getCampaignBudget()->getAmountMicros()->getValue();             $budget = $metrics->getCostMicrosUnwrapped();             if($spend >= $budget){                 DB::table('budget_alerts')->insert(                     ['campaign' => $id, 'hitBudget' => 1]                 );             };         }     } } 

The error at the top of the question is what I get from this, If I put the variable in __construct the same thing happens. I've run a php artisan clear-compiled which I found in another question similar and it didn't seem to fix anything.