Подскажите как решить задачку.
есть 3 таблички
3.1. id
3.2. category_id
3.3. post_id
3.4. root bool default 0
Всё очень просто у поста может быть много категорий, но одна из них обязательно корневая.
Всё работает нормально но есть одно большое НО.
Как мне лениво загрузить только корневую категорию а не коллекцию
//CategoryModel
/**
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany|BlogPost[]
*/
public function posts()
{
return $this->belongsToMany(BlogPost::class,'blog_category_blog_post');
}
//PostModel
/**
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany | BlogCategory[] | null
*/
public function RootCategory()
{
return $this
->belongsToMany(BlogCategory::class,'blog_category_blog_post')
->wherePivot('root','1');
}
belongsToMany так или иначе вернёт мне коллекцию а это есть не удобно.
Так вот суть вопроса в том можно ли это сделать без join ?
Чтобы возвращало только модель где в отношении root = 1
* @OA\Post(
* path="/products",
* description="Add a new product to the store",
* operationId="create",
* @OA\RequestBody(
* description="Product to add to the store",
* required=true,
* @OA\JsonContent(
* @OA\Schema(
* ref="file:///var/www/html/storage/json-schema/test.json#/definitions/product"
* )
* )
* ),
* @OA\Response(
* response=405,
* description="Invalid input"
* )
* )
*/
Ребят, привет. Подскажите плз кто сталкивался.
Делаю проект в люмене 5.5
Создал задачу, специально ее фейлю, чтоб посмотреть как в случае падения будет себя вести. И по факту ведет себя оно не так, как (по моему мнению) должно вести.
Задача запускается, фейлится, рестартуется N раз (public $tries = 2;
) и фейлится окончательно.
[2019-07-09 20:42:04] Processing: App\Services\Sup\v3\Jobs\ValidateInvoice
[2019-07-09 20:42:04] Processing: App\Services\Sup\v3\Jobs\ValidateInvoice
[2019-07-09 20:42:04] Failed: App\Services\Sup\v3\Jobs\ValidateInvoice
По хорошему задача должна бы перезапускаться через retry_after из конфига.
Для редиса по дефолту стоит 60 секунд, в переопределенном конфиге ставлю 20.
Или через public $retryAfter = 10;
(но, судя по докам, эту фичу добавили потом уже, после 5.5).
В результате, вместо того, чтоб подождать пару минут и попробовать повторно задачу - она ха секунду заюзает все попытки и падает наглухо =(
Драйвер установлен в redis, запускается без супервизора, просто в консолькеphp artisan queue:work --queue=default