You must define a binary prior to conversion. Snappy for Laravel 9 - wkhtmltopdf

I've got this LogicException with Laravel 9 on Mac OS Monterey 12.3.1.
I have download wkhtmltopdf binary
Check binary path (/usr/local/bin/wkhtmltopdf and /usr/local/bin/wkhtmltoimage)
Make a chmod +x to binaries
Install composer package via composer require barryvdh/laravel-snappy
Adding config snapy via php artisan vendor:publish --provider="Barryvdh\Snappy\ServiceProvider"
define to my .envfile needed variables (WKHTML_PDF_BINARY & WKHTML_IMG_BINARY)
This is my snappy.php file for config : (automaticly generated)
<?php
return [
/*
|--------------------------------------------------------------------------
| Snappy PDF / Image Configuration
|--------------------------------------------------------------------------
|
| This option contains settings for PDF generation.
|
| Enabled:
|
| Whether to load PDF / Image generation.
|
| Binary:
|
| The file path of the wkhtmltopdf / wkhtmltoimage executable.
|
| Timout:
|
| The amount of time to wait (in seconds) before PDF / Image generation is stopped.
| Setting this to false disables the timeout (unlimited processing time).
|
| Options:
|
| The wkhtmltopdf command options. These are passed directly to wkhtmltopdf.
| See https://wkhtmltopdf.org/usage/wkhtmltopdf.txt for all options.
|
| Env:
|
| The environment variables to set while running the wkhtmltopdf process.
|
*/
'pdf' => [
'enabled' => true,
'binary' => env('WKHTML_PDF_BINARY', '/usr/local/bin/wkhtmltopdf'),
'timeout' => false,
'options' => [],
'env' => [],
],
'image' => [
'enabled' => true,
'binary' => env('WKHTML_IMG_BINARY', '/usr/local/bin/wkhtmltoimage'),
'timeout' => false,
'options' => [],
'env' => [],
],
];
My routes/web.php file :
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\MyController;
Route::controller(MyController::class)->group(function () {
Route::get('/1', 'showStepOne')->name('show.step.one');
Route::get('/pdf', 'showPDF')->name('show.pdf');
});
My Laravel Controller :
<?php
namespace App\Http\Controllers;
use \Illuminate\Http\Request;
use \Illuminate\Http\Response;
use Knp\Snappy\Pdf;
use Illuminate\Support\Facades\View;
class MyController extends Controller
{
/**
* Display 1st step.
*
* #return \Illuminate\Http\Response
*/
public function showStepOne()
{
return view('1');
}
/**
* Show the PDF generated
*
* #param Illuminate\Http\Request $request
* #param Knp\Snappy\Pdf $snappy
* #return \Illuminate\Http\Response
*/
public function showPDF(Request $request, Pdf $snappy): Response
{
$pdf = $request->session()->get('pdf');
if(empty($pdf)) return redirect()->route('show.step.one');
$html = View::make("my_pdf", array(
'tags' => $pdf['tags'],
'workperformance' => $pdf['workperformance']
));
$options = [
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'inline; filename="diagnostic.pdf"'
];
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'Trident') !== false) {
$options += [
'Cache-Control' => 'max-age=1',
'Cache-Control' => 'must-revalidate, post-check=0, pre-check=0',
'Pragma' => 'public',
'Expires' => '0'
];
}
return new Response(
$snappy->getOutputFromHtml(
array($html),
array(
'page-size' => 'A4',
'margin-top' => '0in',
'margin-right' => '0in',
'margin-bottom' => '0in',
'margin-left' => '0in',
'encoding' => "UTF-8",
)
),
200,
$options
);
}
And the complete error (in laravel.log) :
[2022-06-16 14:20:48] dev.ERROR: You must define a binary prior to conversion. {"exception":"[object] (LogicException(code: 0): You must define a binary prior to conversion. at /var/www/html/vendor/knplabs/knp-snappy/src/Knp/Snappy/AbstractGenerator.php:301)
[stacktrace]
#0 /var/www/html/vendor/knplabs/knp-snappy/src/Knp/Snappy/AbstractGenerator.php(180): Knp\\Snappy\\AbstractGenerator->getCommand()
#1 /var/www/html/vendor/knplabs/knp-snappy/src/Knp/Snappy/Pdf.php(36): Knp\\Snappy\\AbstractGenerator->generate()
#2 /var/www/html/vendor/knplabs/knp-snappy/src/Knp/Snappy/AbstractGenerator.php(242): Knp\\Snappy\\Pdf->generate()
#3 /var/www/html/vendor/knplabs/knp-snappy/src/Knp/Snappy/AbstractGenerator.php(261): Knp\\Snappy\\AbstractGenerator->getOutput()
#4 /var/www/html/app/Http/Controllers/EnergyDiagnosisController.php(932): Knp\\Snappy\\AbstractGenerator->getOutputFromHtml()
#5 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): App\\Http\\Controllers\\EnergyDiagnosisController->showPDF()
#6 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction()
#7 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php(261): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#8 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php(204): Illuminate\\Routing\\Route->runController()
#9 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(725): Illuminate\\Routing\\Route->run()
#10 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
#11 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#12 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#13 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#14 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle()
#15 /var/www/html/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#16 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle()
#17 /var/www/html/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#18 /var/www/html/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest()
#19 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Session\\Middleware\\StartSession->handle()
#20 /var/www/html/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#21 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle()
#22 /var/www/html/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#23 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle()
#24 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#25 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(726): Illuminate\\Pipeline\\Pipeline->then()
#26 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(703): Illuminate\\Routing\\Router->runRouteWithinStack()
#27 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(667): Illuminate\\Routing\\Router->runRoute()
#28 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(656): Illuminate\\Routing\\Router->dispatchToRoute()
#29 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(167): Illuminate\\Routing\\Router->dispatch()
#30 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#31 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#32 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#33 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#34 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#35 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#36 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#37 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#38 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle()
#39 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#40 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#41 /var/www/html/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#42 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Http\\Middleware\\HandleCors->handle()
#43 /var/www/html/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#44 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#45 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#46 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(142): Illuminate\\Pipeline\\Pipeline->then()
#47 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(111): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#48 /var/www/html/public/index.php(52): Illuminate\\Foundation\\Http\\Kernel->handle()
#49 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/resources/server.php(16): require_once('...')
#50 {main}
I also try to clean Laravel's cache.
What I've missed ? According to the official documentation nothing is needed anymore but it doesn't work anyway.

Related

"Column not found" when logging in to Laravel 8 application - assuming column "id" is missing?

I've been working on a Laravel 8 application, and recently I've been working on the security of the app. I've elected to authenticate users "manually" - as in not using the starter kits available - and have something where I can create a user and have them log in to the application.
The issue I'm having is that upon a successful log in attempt, I'm given the following error:
SQLSTATE[42S22]: Column not found: 1054 Unknown column '' in 'where
clause' (SQL: select * from users where `` = 11 limit 1)
This error occurs once the credentials have been matched to what's on the database. I'm assuming the unknown column is id given that the current user I'm trying to log in as has the id of 11, which would fit with the SQL query in the error.
The user table schema is as follows:
The user model is as follows:
<?php
/**
* Created by Reliese Model.
*/
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Contracts\Auth\Authenticatable;
use Spatie\MediaLibrary\MediaCollections\Models\Media;
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
/**
* Class User
*
* #property int $id
* #property string $name
* #property string $email
* #property int|null $email_verified
* #property string|null $password
* #property bool $user_level
* #property bool|null $is_active
* #property bool|null $is_admin
* #property int|null $created_at
* #property bool|null $blocked
* #property string|null $email_hash
*
* #package App\Models
*/
class User extends Model implements Authenticatable, HasMedia
{
use InteractsWithMedia;
protected $table = 'users';
public $timestamps = false;
protected $primaryKey = 'id';
protected $username = 'email';
protected $casts = [
'email_verified' => 'int',
'user_level' => 'bool',
'is_active' => 'bool',
'is_admin' => 'bool',
'created_at' => 'int',
'blocked' => 'bool'
];
protected $hidden = [
'password'
];
protected $fillable = [
'name',
'email',
'email_verified',
'password',
'user_level',
'is_active',
'is_admin',
'blocked',
'email_hash'
];
public function registerMediaCollections() : void
{
$this->addMediaCollection('userCSCS')
->acceptsFile(function (File $file) {
return $file->mimeType === 'image/jpeg';
});
}
public function registerMediaConversions(Media $media = null): void
{
$this->addMediaConversion('thumb')
->width(368)
->height(232)
->sharpen(10);
}
public function getAuthIdentifierName() {
return $this->email;
}
public function getAuthIdentifier() {
return $this->id;
}
public function getAuthPassword() {
return $this->password;
}
public function getRememberToken() {
return $this->remember_token;
}
public function setRememberToken($value) {}
public function getRememberTokenName() {}
}
The controller handling the logging in attempt is as follows:
<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
class LoginController extends Controller
{
use AuthenticatesUsers;
/**
* Handle an authentication attempt.
*
* #param \Illuminate\Http\Request $request
* #return \Illuminate\Http\Response
*/
public function authenticate(Request $request)
{
$credentials = $request->only('email', 'password');
if (Auth::attempt($credentials)) {
$request->session()->regenerate();
return redirect()->route('adminDashboard');
}
return back()->withErrors([
'email' => 'The provided credentials do not match our records.',
]);
}
}
The config\auth.php file is as follows (I've removed the comments for b:
<?php
return [
'defaults' => [
'guard' => 'web',
'passwords' => 'users',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
'table' => 'users'
],
// 'users' => [
// 'driver' => 'database',
// 'table' => 'users',
// ],
],
'passwords' => [
'users' => [
'provider' => 'users',
'table' => 'password_resets',
'expire' => 60,
'throttle' => 60,
],
],
'password_timeout' => 10800,
];
The two entries in the laravel.log file relating to this error:
[2021-05-24 19:13:19] local.ERROR: SQLSTATE[42S22]: Column not found: 1054 Unknown column '' in 'where clause' (SQL: select * from `users` where `` = 11 limit 1) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 42S22): SQLSTATE[42S22]: Column not found: 1054 Unknown column '' in 'where clause' (SQL: select * from `users` where `` = 11 limit 1) at /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Connection.php:678)
[stacktrace]
#0 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Connection.php(638): Illuminate\\Database\\Connection->runQueryCallback()
#1 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Connection.php(346): Illuminate\\Database\\Connection->run()
#2 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2315): Illuminate\\Database\\Connection->select()
#3 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2303): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2867): Illuminate\\Database\\Query\\Builder->Illuminate\\Database\\Query\\{closure}()
#5 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2304): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#6 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(598): Illuminate\\Database\\Query\\Builder->get()
#7 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(582): Illuminate\\Database\\Eloquent\\Builder->getModels()
#8 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(254): Illuminate\\Database\\Eloquent\\Builder->get()
#9 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php(52): Illuminate\\Database\\Eloquent\\Builder->first()
#10 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php(141): Illuminate\\Auth\\EloquentUserProvider->retrieveById()
#11 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php(212): Illuminate\\Auth\\SessionGuard->user()
#12 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(213): Illuminate\\Auth\\SessionGuard->id()
#13 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(200): Illuminate\\Session\\DatabaseSessionHandler->userId()
#14 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(186): Illuminate\\Session\\DatabaseSessionHandler->addUserInformation()
#15 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Support/helpers.php(263): Illuminate\\Session\\DatabaseSessionHandler->Illuminate\\Session\\{closure}()
#16 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(188): tap()
#17 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(125): Illuminate\\Session\\DatabaseSessionHandler->getDefaultPayload()
#18 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/Store.php(129): Illuminate\\Session\\DatabaseSessionHandler->write()
#19 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(236): Illuminate\\Session\\Store->save()
#20 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(130): Illuminate\\Session\\Middleware\\StartSession->saveSession()
#21 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest()
#22 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Session\\Middleware\\StartSession->handle()
#23 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#24 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle()
#25 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#26 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle()
#27 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#28 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Routing/Router.php(697): Illuminate\\Pipeline\\Pipeline->then()
#29 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Routing/Router.php(672): Illuminate\\Routing\\Router->runRouteWithinStack()
#30 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Routing/Router.php(636): Illuminate\\Routing\\Router->runRoute()
#31 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Routing/Router.php(625): Illuminate\\Routing\\Router->dispatchToRoute()
#32 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(166): Illuminate\\Routing\\Router->dispatch()
#33 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#34 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#35 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#36 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#37 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#38 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#39 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#40 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#41 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle()
#42 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#43 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#44 /home/michael/Travis/vendor/fruitcake/laravel-cors/src/HandleCors.php(38): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#45 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fruitcake\\Cors\\HandleCors->handle()
#46 /home/michael/Travis/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#47 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\\Proxy\\TrustProxies->handle()
#48 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#49 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(141): Illuminate\\Pipeline\\Pipeline->then()
#50 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#51 /home/michael/Travis/public/index.php(52): Illuminate\\Foundation\\Http\\Kernel->handle()
#52 /home/michael/Travis/server.php(21): require_once('/home/michael/T...')
#53 {main}
[previous exception] [object] (PDOException(code: 42S22): SQLSTATE[42S22]: Column not found: 1054 Unknown column '' in 'where clause' at /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Connection.php:338)
[stacktrace]
#0 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Connection.php(338): PDO->prepare()
#1 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Connection.php(671): Illuminate\\Database\\Connection->Illuminate\\Database\\{closure}()
#2 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Connection.php(638): Illuminate\\Database\\Connection->runQueryCallback()
#3 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Connection.php(346): Illuminate\\Database\\Connection->run()
#4 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2315): Illuminate\\Database\\Connection->select()
#5 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2303): Illuminate\\Database\\Query\\Builder->runSelect()
#6 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2867): Illuminate\\Database\\Query\\Builder->Illuminate\\Database\\Query\\{closure}()
#7 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2304): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#8 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(598): Illuminate\\Database\\Query\\Builder->get()
#9 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(582): Illuminate\\Database\\Eloquent\\Builder->getModels()
#10 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(254): Illuminate\\Database\\Eloquent\\Builder->get()
#11 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php(52): Illuminate\\Database\\Eloquent\\Builder->first()
#12 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php(141): Illuminate\\Auth\\EloquentUserProvider->retrieveById()
#13 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php(212): Illuminate\\Auth\\SessionGuard->user()
#14 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(213): Illuminate\\Auth\\SessionGuard->id()
#15 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(200): Illuminate\\Session\\DatabaseSessionHandler->userId()
#16 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(186): Illuminate\\Session\\DatabaseSessionHandler->addUserInformation()
#17 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Support/helpers.php(263): Illuminate\\Session\\DatabaseSessionHandler->Illuminate\\Session\\{closure}()
#18 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(188): tap()
#19 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(125): Illuminate\\Session\\DatabaseSessionHandler->getDefaultPayload()
#20 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/Store.php(129): Illuminate\\Session\\DatabaseSessionHandler->write()
#21 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(236): Illuminate\\Session\\Store->save()
#22 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(130): Illuminate\\Session\\Middleware\\StartSession->saveSession()
#23 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest()
#24 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Session\\Middleware\\StartSession->handle()
#25 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#26 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle()
#27 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#28 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle()
#29 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#30 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Routing/Router.php(697): Illuminate\\Pipeline\\Pipeline->then()
#31 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Routing/Router.php(672): Illuminate\\Routing\\Router->runRouteWithinStack()
#32 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Routing/Router.php(636): Illuminate\\Routing\\Router->runRoute()
#33 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Routing/Router.php(625): Illuminate\\Routing\\Router->dispatchToRoute()
#34 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(166): Illuminate\\Routing\\Router->dispatch()
#35 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#36 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#37 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#38 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#39 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#40 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#41 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#42 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#43 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle()
#44 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#45 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#46 /home/michael/Travis/vendor/fruitcake/laravel-cors/src/HandleCors.php(38): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#47 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fruitcake\\Cors\\HandleCors->handle()
#48 /home/michael/Travis/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#49 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\\Proxy\\TrustProxies->handle()
#50 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#51 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(141): Illuminate\\Pipeline\\Pipeline->then()
#52 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#53 /home/michael/Travis/public/index.php(52): Illuminate\\Foundation\\Http\\Kernel->handle()
#54 /home/michael/Travis/server.php(21): require_once('/home/michael/T...')
#55 {main}
"}
I'm stumped really with how to proceed, as it's a breaking bug and given that it's trying to build a query using nothing as a column (as it's unknown) is a weird issue and isn't one I'm able to set about fixing. So I would really appreciate some help!
The problem is caused by your implementation of the following methods:
public function getAuthIdentifierName() {
return $this->email;
}
public function getAuthIdentifier() {
return $this->id;
}
public function getAuthPassword() {
return $this->password;
}
public function getRememberToken() {
return $this->remember_token;
}
public function setRememberToken($value) {}
public function getRememberTokenName() {}
Normally you don't need to implement them if you don't want the changes.
And for example getAuthIdentifierName should be implemented like:
return $this->getKeyName();
what in fact does:
return 'id';
and you implemented it like:
return $this->id;
what in fact is empty when you don't have model retrieved from database.
See Authenticatable trait for default implementation.

Laravel SQS queue on localstack returns errors when running it

I have an empty Job file:
<?php
namespace SS\Jobs;
use Exception;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Support\Facades\Log;
class SJQJob implements ShouldQueue
{
protected $payload;
public function __construct($payload)
{
$this->payload = $payload;
}
public function handle()
{
Log::info('!!!! Handle');
}
public function failed(Exception $exception)
{
Log::info('!!!! Failed');
}
}
I am dispatching this, then using php artisan queue:work ssqjobrequest I can see it being processed (2020-07-29 16:43:07][06978486-4c62-3948-5b4a-f8c648038c34] Processing: SS\Jobs\SJQJob)
The problem is that I am seeing this message in the log:
2020-07-29 16:43:07] local.ERROR: Error executing "DeleteMessage" on "http://localstack.test:4576/000000000000/ssqjobrequest"; AWS HTTP error: Client error: `POST http://localstack.test:4576/000000000000/ssqjobrequest` resulted in a `400 Bad Request` response:
<?xml version="1.0" encoding="UTF-8"?>
<ErrorResponse>
<Errors>
<Error>
<Code>ReceiptHandleIsInvalid (truncated...)
ReceiptHandleIsInvalid (client): The input receipt handle is invalid. - <?xml version="1.0" encoding="UTF-8"?>
<ErrorResponse>
<Errors>
<Error>
<Code>ReceiptHandleIsInvalid</Code>
<Message>The input receipt handle is invalid.</Message>
</Error>
</Errors>
<RequestID>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</RequestID>
</ErrorResponse> {"exception":"[object] (Aws\\Sqs\\Exception\\SqsException(code: 0): Error executing \"DeleteMessage\" on \"http://localstack.test:4576/000000000000/ssqjobrequest\"; AWS HTTP error: Client error: `POST http://localstack.test:4576/000000000000/ssqjobrequest` resulted in a `400 Bad Request` response:
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<ErrorResponse>
<Errors>
<Error>
<Code>ReceiptHandleIsInvalid (truncated...)
ReceiptHandleIsInvalid (client): The input receipt handle is invalid. - <?xml version=\"1.0\" encoding=\"UTF-8\"?>
<ErrorResponse>
<Errors>
<Error>
<Code>ReceiptHandleIsInvalid</Code>
<Message>The input receipt handle is invalid.</Message>
</Error>
</Errors>
<RequestID>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</RequestID>
</ErrorResponse> at /var/www/sst/vendor/aws/aws-sdk-php/src/WrappedHttpHandler.php:195)
[stacktrace]
#0 /var/www/sst/vendor/aws/aws-sdk-php/src/WrappedHttpHandler.php(97): Aws\\WrappedHttpHandler->parseError()
#1 /var/www/sst/vendor/guzzlehttp/promises/src/Promise.php(198): Aws\\WrappedHttpHandler->Aws\\{closure}()
#2 /var/www/sst/vendor/guzzlehttp/promises/src/Promise.php(169): GuzzleHttp\\Promise\\Promise::callHandler()
#3 /var/www/sst/vendor/guzzlehttp/promises/src/RejectedPromise.php(40): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()
#4 /var/www/sst/vendor/guzzlehttp/promises/src/TaskQueue.php(47): GuzzleHttp\\Promise\\RejectedPromise::GuzzleHttp\\Promise\\{closure}()
#5 /var/www/sst/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php(118): GuzzleHttp\\Promise\\TaskQueue->run()
#6 /var/www/sst/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php(145): GuzzleHttp\\Handler\\CurlMultiHandler->tick()
#7 /var/www/sst/vendor/guzzlehttp/promises/src/Promise.php(241): GuzzleHttp\\Handler\\CurlMultiHandler->execute()
#8 /var/www/sst/vendor/guzzlehttp/promises/src/Promise.php(218): GuzzleHttp\\Promise\\Promise->invokeWaitFn()
#9 /var/www/sst/vendor/guzzlehttp/promises/src/Promise.php(262): GuzzleHttp\\Promise\\Promise->waitIfPending()
#10 /var/www/sst/vendor/guzzlehttp/promises/src/Promise.php(220): GuzzleHttp\\Promise\\Promise->invokeWaitList()
#11 /var/www/sst/vendor/guzzlehttp/promises/src/Promise.php(262): GuzzleHttp\\Promise\\Promise->waitIfPending()
#12 /var/www/sst/vendor/guzzlehttp/promises/src/Promise.php(220): GuzzleHttp\\Promise\\Promise->invokeWaitList()
#13 /var/www/sst/vendor/guzzlehttp/promises/src/Promise.php(61): GuzzleHttp\\Promise\\Promise->waitIfPending()
#14 /var/www/sst/vendor/aws/aws-sdk-php/src/AwsClientTrait.php(58): GuzzleHttp\\Promise\\Promise->wait()
#15 /var/www/sst/vendor/aws/aws-sdk-php/src/AwsClientTrait.php(86): Aws\\AwsClient->execute()
#16 /var/www/sst/vendor/laravel/framework/src/Illuminate/Queue/Jobs/SqsJob.php(71): Aws\\AwsClient->__call()
#17 /var/www/sst/vendor/dusterio/laravel-plain-sqs/src/Integrations/LaravelServiceProvider.php(28): Illuminate\\Queue\\Jobs\\SqsJob->delete()
#18 /var/www/sst/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(369): Dusterio\\PlainSqs\\Integrations\\LaravelServiceProvider->Dusterio\\PlainSqs\\Integrations\\{closure}()
#19 /var/www/sst/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(218): Illuminate\\Events\\Dispatcher->Illuminate\\Events\\{closure}()
#20 /var/www/sst/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(509): Illuminate\\Events\\Dispatcher->dispatch()
#21 /var/www/sst/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(370): Illuminate\\Queue\\Worker->raiseAfterJobEvent()
#22 /var/www/sst/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(314): Illuminate\\Queue\\Worker->process()
#23 /var/www/sst/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(134): Illuminate\\Queue\\Worker->runJob()
#24 /var/www/sst/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(112): Illuminate\\Queue\\Worker->daemon()
#25 /var/www/sst/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(96): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#26 [internal function]: Illuminate\\Queue\\Console\\WorkCommand->handle()
#27 /var/www/sst/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(32): call_user_func_array()
#28 /var/www/sst/vendor/laravel/framework/src/Illuminate/Container/Util.php(36): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#29 /var/www/sst/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(90): Illuminate\\Container\\Util::unwrapIfClosure()
#30 /var/www/sst/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(34): Illuminate\\Container\\BoundMethod::callBoundMethod()
#31 /var/www/sst/vendor/laravel/framework/src/Illuminate/Container/Container.php(590): Illuminate\\Container\\BoundMethod::call()
#32 /var/www/sst/vendor/laravel/framework/src/Illuminate/Console/Command.php(134): Illuminate\\Container\\Container->call()
#33 /var/www/sst/vendor/symfony/console/Command/Command.php(255): Illuminate\\Console\\Command->execute()
#34 /var/www/sst/vendor/laravel/framework/src/Illuminate/Console/Command.php(121): Symfony\\Component\\Console\\Command\\Command->run()
#35 /var/www/sst/vendor/symfony/console/Application.php(1001): Illuminate\\Console\\Command->run()
#36 /var/www/sst/vendor/symfony/console/Application.php(271): Symfony\\Component\\Console\\Application->doRunCommand()
#37 /var/www/sst/vendor/symfony/console/Application.php(147): Symfony\\Component\\Console\\Application->doRun()
#38 /var/www/sst/vendor/laravel/framework/src/Illuminate/Console/Application.php(93): Symfony\\Component\\Console\\Application->run()
#39 /var/www/sst/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(131): Illuminate\\Console\\Application->run()
#40 /var/www/sst/artisan(35): Illuminate\\Foundation\\Console\\Kernel->handle()
I am not trying to delete anything (so I guess that laravel tries to delete the message from Amazon SQS) .. but why does it fail?
I have checked and the message gets there .. so why would it fail when trying to delete it ?
Thanks!
It seems like you are listening to your own machine instead of listening to aws
if you want to use ssqjobrequest you must also have a config for it
Does your queue config file look like this?
'default' => env('QUEUE_CONNECTION', 'sqs'),
'connections' => [
'sqs' => [
'driver' => 'sqs',
'key' => env('AWS_ACCESS_KEY_ID', ''),
'secret' => env('AWS_SECRET_ACCESS_KEY', ''),
'queue' => env('QUEUE'),
'region' => 'eu-west-1',
],
'ssqjobrequest' => [
'driver' => 'sqs',
'key' => env('AWS_ACCESS_KEY_ID', ''),
'secret' => env('AWS_SECRET_ACCESS_KEY', ''),
'queue' => env('ssqjobrequest'),
'region' => 'eu-west-1',
],
],
Does the env file contains queue with the full aws url?
QUEUE=https://sqs.eu-west-1.amazonaws.com/************/queue
ssqjobrequest=https://sqs.eu-west-1.amazonaws.com/************/ssqjobrequest
if you want to push a job to ssqjobrequest
SJQJob::dispatch($payload)->onQueue('ssqjobrequest');

Cannot use 'EVAL' with redis-cluster

Redis was working okay on local machine but on production it is throwing error.
On the local machine, I used the same configuration.
Trying for hours but still could not solve the problem.
Production Environment :
Ubuntu
Stack : Laravel, Redis, Laravel echo server
config/database.php
'redis' => [
'client' => 'predis',
'cluster' => false,
'default' => [
[
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 0,
],
],
],
.env file
BROADCAST_DRIVER=redis
CACHE_DRIVER=redis
SESSION_DRIVER=file
Error :
Cannot use 'EVAL' with redis-cluster. {"exception":"[object] (Predis\\NotSupportedException(code: 0): Cannot use 'EVAL' with redis-cluster. at /var/www/html/mayaapi/vendor/predis/predis/src/Connection/Aggregate/RedisCluster.php:380)
[stacktrace]
#0 /var/www/html/mayaapi/vendor/predis/predis/src/Connection/Aggregate/RedisCluster.php(550): Predis\\Connection\\Aggregate\\RedisCluster->getConnection(Object(Predis\\Command\\ServerEval))
#1 /var/www/html/mayaapi/vendor/predis/predis/src/Connection/Aggregate/RedisCluster.php(593): Predis\\Connection\\Aggregate\\RedisCluster->retryCommandOnFailure(Object(Predis\\Command\\ServerEval), 'executeCommand')
#2 /var/www/html/mayaapi/vendor/predis/predis/src/Client.php(331): Predis\\Connection\\Aggregate\\RedisCluster->executeCommand(Object(Predis\\Command\\ServerEval))
#3 /var/www/html/mayaapi/vendor/predis/predis/src/Client.php(314): Predis\\Client->executeCommand(Object(Predis\\Command\\ServerEval))
#4 /var/www/html/mayaapi/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php(96): Predis\\Client->__call('eval', Array)
#5 /var/www/html/mayaapi/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php(108): Illuminate\\Redis\\Connections\\Connection->command('eval', Array)
#6 /var/www/html/mayaapi/vendor/laravel/framework/src/Illuminate/Queue/RedisQueue.php(204): Illuminate\\Redis\\Connections\\Connection->__call('eval', Array)
#7 /var/www/html/mayaapi/vendor/laravel/framework/src/Illuminate/Queue/RedisQueue.php(187): Illuminate\\Queue\\RedisQueue->migrateExpiredJobs('queues:default:...', 'queues:default')
#8 /var/www/html/mayaapi/vendor/laravel/framework/src/Illuminate/Queue/RedisQueue.php(163): Illuminate\\Queue\\RedisQueue->migrate('queues:default')
#9 /var/www/html/mayaapi/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(246): Illuminate\\Queue\\RedisQueue->pop('default')
#10 /var/www/html/mayaapi/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(107): Illuminate\\Queue\\Worker->getNextJob(Object(Illuminate\\Queue\\RedisQueue), 'default')
#11 /var/www/html/mayaapi/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(101): Illuminate\\Queue\\Worker->daemon('redis', 'default', Object(Illuminate\\Queue\\WorkerOptions))
#12 /var/www/html/mayaapi/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(85): Illuminate\\Queue\\Console\\WorkCommand->runWorker('redis', 'default')
#13 [internal function]: Illuminate\\Queue\\Console\\WorkCommand->handle()
#14 /var/www/html/mayaapi/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(29): call_user_func_array(Array, Array)
#15 /var/www/html/mayaapi/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(87): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#16 /var/www/html/mayaapi/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(31): Illuminate\\Container\\BoundMethod::callBoundMethod(Object(Illuminate\\Foundation\\Application), Array, Object(Closure))
#17 /var/www/html/mayaapi/vendor/laravel/framework/src/Illuminate/Container/Container.php(564): Illuminate\\Container\\BoundMethod::call(Object(Illuminate\\Foundation\\Application), Array, Array, NULL)
#18 /var/www/html/mayaapi/vendor/laravel/framework/src/Illuminate/Console/Command.php(179): Illuminate\\Container\\Container->call(Array)
#19 /var/www/html/mayaapi/vendor/symfony/console/Command/Command.php(255): Illuminate\\Console\\Command->execute(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Illuminate\\Console\\OutputStyle))
#20 /var/www/html/mayaapi/vendor/laravel/framework/src/Illuminate/Console/Command.php(166): Symfony\\Component\\Console\\Command\\Command->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Illuminate\\Console\\OutputStyle))
#21 /var/www/html/mayaapi/vendor/symfony/console/Application.php(1012): Illuminate\\Console\\Command->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#22 /var/www/html/mayaapi/vendor/symfony/console/Application.php(272): Symfony\\Component\\Console\\Application->doRunCommand(Object(Illuminate\\Queue\\Console\\WorkCommand), Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#23 /var/www/html/mayaapi/vendor/symfony/console/Application.php(148): Symfony\\Component\\Console\\Application->doRun(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#24 /var/www/html/mayaapi/vendor/laravel/framework/src/Illuminate/Console/Application.php(89): Symfony\\Component\\Console\\Application->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#25 /var/www/html/mayaapi/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(122): Illuminate\\Console\\Application->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#26 /var/www/html/mayaapi/artisan(37): Illuminate\\Foundation\\Console\\Kernel->handle(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#27 {main}
"}
Try adding hash-tags (wrapping a constant string with {}) to your queue name in your config/queue.php file.
'queue.connections.redis.queue' => '{default}'
If you are using other queues besides the default, instead of OnQueue('myQueue') change it everywhere to OnQueue('{myQueue}').
Even if you are not using a cluster, probably predis is checking all keys passed to the Lua script are on the same node.

ErrorException in Validator.php line 2631: strpos() expects parameter 1 to be string, object given

While doing validation I am trying to write an anonymous function to check apply a Rule but getting error, without the anonymous function code is working correctly
$validateRules = [
'user_id' => ['required','array'],
'user_id.*' => ['bail','required','regex:/^[1-9][0-9]*$/','exists:users,id,deleted_at,NULL','distinct',
function($attribute, $value, $fail){
dd($value);
}
]
];
While validating if all other validations are cleared it should go inside this function
Error Log
ErrorException: strpos() expects parameter 1 to be string, object given in /code/community_api/vendor/laravel/framework/src/Illuminate/Validation/Validator.php:2631
Stack trace:
#0 [internal function]: Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(2, 'strpos() expect...', '/code/community...', 2631, Array)
#1 /code/community_api/vendor/laravel/framework/src/Illuminate/Validation/Validator.php(2631): strpos(Object(Closure), ':')
#2 /code/community_api/vendor/laravel/framework/src/Illuminate/Validation/Validator.php(2599): Illuminate\Validation\Validator->parseStringRule(Object(Closure))
#3 /code/community_api/vendor/laravel/framework/src/Illuminate/Validation/Validator.php(2580): Illuminate\Validation\Validator->parseRule(Object(Closure))
#4 /code/community_api/vendor/laravel/framework/src/Illuminate/Validation/Validator.php(2561): Illuminate\Validation\Validator->getRule('user_id.0', Array)
#5 /code/community_api/vendor/laravel/framework/src/Illuminate/Validation/Validator.php(589): Illuminate\Validation\Validator->hasRule('user_id.0', Array)
#6 /code/community_api/vendor/laravel/framework/src/Illuminate/Validation/Validator.php(564): Illuminate\Validation\Validator->passesOptionalCheck('user_id.0')
#7 /code/community_api/vendor/laravel/framework/src/Illuminate/Validation/Validator.php(481): Illuminate\Validation\Validator->isValidatable('Bail', 'user_id.0', '6')
#8 /code/community_api/vendor/laravel/framework/src/Illuminate/Validation/Validator.php(425): Illuminate\Validation\Validator->validate('user_id.0', 'Bail')
#9 /code/community_api/vendor/laravel/framework/src/Illuminate/Validation/ValidatesWhenResolvedTrait.php(24): Illuminate\Validation\Validator->passes()
#10 /code/community_api/vendor/laravel/framework/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php(41): Illuminate\Foundation\Http\FormRequest->validate()
More to the previous Backlog
#11 /code/community_api/vendor/laravel/framework/src/Illuminate/Container/Container.php(1031): Illuminate\Foundation\Providers\FoundationServiceProvider->Illuminate\Foundation\Providers\{closure}(Object(App\Modules\Auth\Requests\DeleteUserRequest), Object(Illuminate\Foundation\Application))
#12 /code/community_api/vendor/laravel/framework/src/Illuminate/Container/Container.php(994): Illuminate\Container\Container->fireCallbackArray(Object(App\Modules\Auth\Requests\DeleteUserRequest), Array)
#13 /code/community_api/vendor/laravel/framework/src/Illuminate/Container/Container.php(648): Illuminate\Container\Container->fireResolvingCallbacks('App\\Modules\\Aut...', Object(App\Modules\Auth\Requests\DeleteUserRequest))
#14 /code/community_api/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(697): Illuminate\Container\Container->make('App\\Modules\\Aut...', Array)
#15 /code/community_api/vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php(85): Illuminate\Foundation\Application->make('App\\Modules\\Aut...')
#16 /code/community_api/vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php(58): Illuminate\Routing\ControllerDispatcher->transformDependency(Object(ReflectionParameter), Array, Array)
#17 /code/community_api/vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php(41): Illuminate\Routing\ControllerDispatcher->resolveMethodDependencies(Array, Object(ReflectionMethod))
#18 /code/community_api/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(143): Illuminate\Routing\ControllerDispatcher->resolveClassMethodDependencies(Array, Object(App\Modules\Auth\Controllers\UserController), 'deleteCompanyUs...')
#19 /code/community_api/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(94): Illuminate\Routing\ControllerDispatcher->call(Object(App\Modules\Auth\Controllers\UserController), Object(Illuminate\Routing\Route), 'deleteCompanyUs...')
#20 [internal function]: Illuminate\Routing\ControllerDispatcher->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#21 /code/community_api/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(52): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#22 [internal function]: Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#23 /code/community_api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#24 /code/community_api/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(96): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#25 /code/community_api/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(54): Illuminate\Routing\ControllerDispatcher->callWithinStack(Object(App\Modules\Auth\Controllers\UserController), Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request), 'deleteCompanyUs...')
#26 /code/community_api/vendor/laravel/framework/src/Illuminate/Routing/Route.php(174): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request), 'App\\Modules\\Aut...', 'deleteCompanyUs...')
#27 /code/community_api/vendor/laravel/framework/src/Illuminate/Routing/Route.php(140): Illuminate\Routing\Route->runController(Object(Illuminate\Http\Request))
#28 /code/community_api/vendor/laravel/framework/src/Illuminate/Routing/Router.php(724): Illuminate\Routing\Route->run(Object(Illuminate\Http\Request))
#29 [internal function]: Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#30 /code/community_api/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(52): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#31 /code/community_api/app/Http/Middleware/Api.php(30): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#32 [internal function]: App\Http\Middleware\Api->handle(Object(Illuminate\Http\Request), Object(Closure))
#33 /code/community_api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(136): call_user_func_array(Array, Array)
#34 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#35 /code/community_api/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#36 /code/community_api/vendor/tymon/jwt-auth/src/Middleware/RefreshToken.php(28): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#37 [internal function]: Tymon\JWTAuth\Middleware\RefreshToken->handle(Object(Illuminate\Http\Request), Object(Closure))
#38 /code/community_api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(136): call_user_func_array(Array, Array)
#39 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#40 /code/community_api/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#41 /code/community_api/vendor/tymon/jwt-auth/src/Middleware/GetUserFromToken.php(46): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
I dont see a mention of the possible use on a Closure as a validator parameter in laravel 5.3 except extend() method
Validator::extend('foo', function ($attribute, $value, $parameters, $validator) {
dd($value);
});
$validateRules = [
'user_id' => ['required','array'],
'user_id.*' => ['bail','required','integer','exists:users,id,deleted_at,NULL','distinct','foo']
];

Laravel Routing issue when using POST Method

I am trying to call controller using Routes. Everything is working fine when using GET method. When I worked on Post, i am not able to call the controller. Please check the below.
Error Code: Routing is not working
Route::post('/accountSignUp', [
'as' => 'accountSignUp',
'uses' => 'UsersController#accountSignUp'
]);
can anybody suggest how to do it.
I checked in log.. Getting the below error message..
[2014-11-07 13:30:46] dev.ERROR: exception 'Symfony\Component\HttpKernel\Exception\NotFoundHttpException' in /var/www/project_name/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php:148
Stack trace:
#0 /var/www/project_name/vendor/laravel/framework/src/Illuminate/Routing/Router.php(1049): Illuminate\Routing\RouteCollection->match(Object(Illuminate\Http\Request))
#1 /var/www/project_name/vendor/laravel/framework/src/Illuminate/Routing/Router.php(1017): Illuminate\Routing\Router->findRoute(Object(Illuminate\Http\Request))
#2 /var/www/project_name/vendor/laravel/framework/src/Illuminate/Routing/Router.php(996): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#3 /var/www/project_name/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(775): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#4 /var/www/project_name/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(745): Illuminate\Foundation\Application->dispatch(Object(Illuminate\Http\Request))
#5 /var/www/project_name/vendor/barryvdh/laravel-debugbar/src/Middleware/Stack.php(34): Illuminate\Foundation\Application->handle(Object(Illuminate\Http\Request), 1, true)
#6 /var/www/project_name/vendor/laravel/framework/src/Illuminate/Session/Middleware.php(72): Barryvdh\Debugbar\Middleware\Stack->handle(Object(Illuminate\Http\Request), 1, true)
#7 /var/www/project_name/vendor/laravel/framework/src/Illuminate/Cookie/Queue.php(47): Illuminate\Session\Middleware->handle(Object(Illuminate\Http\Request), 1, true)
#8 /var/www/project_name/vendor/laravel/framework/src/Illuminate/Cookie/Guard.php(51): Illuminate\Cookie\Queue->handle(Object(Illuminate\Http\Request), 1, true)
#9 /var/www/project_name/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Illuminate\Cookie\Guard->handle(Object(Illuminate\Http\Request), 1, true)
#10 /var/www/project_name/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(641): Stack\StackedHttpKernel->handle(Object(Illuminate\Http\Request))
#11 /var/www/project_name/public/index.php(49): Illuminate\Foundation\Application->run()
#12 {main} [] []
First, you should have defined your routes this way:
Route::method(['POST', 'GET'], '/accountSignUp', [
'as' => 'accountSignUp',
'uses' => 'UsersController#accountSignUp'
]);
Now in your controller to get any values you can simply use echo Input::get('username') - you use get method both for POST and GET data.

Resources