Почему Laravel ругается, когда я передаю модель в конструкторе работы?

Доброго дня.
Есть экземпляр работы Jobs\UpdateTable. Там есть конструктор.
/**
 * Create a new job instance.
 *
 * @return void
 */
 public function __construct(Products $Model) // <-- путь корректен, я указал use
 {
    $this->Model = $Model; // если вот это убрать, все будет работать нормально
 }

Данная таска запланирована в планировщике Laravel (app\Console\Kernel.php, метод shedule).
$schedule->job(Jobs\UpdateTable::class)->everyMinute();

Модель Products пустая. Таблица в БД есть, но она тоже пустая.
namespace App;

use Illuminate\Database\Eloquent\Model;

class Products extends Model
{
    //
}

При этом, когда запускаю таску, все фейлится с ошибкой "Illuminate\Database\Eloquent\ModelNotFoundException : No query results for model [App\Products]", хотя я ничего не выбирал из модели и не делал ничего с результатами. Запускаю из консоли.
$ php artisan schedule:run
// Вот это вот приведет к ошибке
// Illuminate\Database\Eloquent\ModelNotFoundException  : No query results for model [App\Products]

Я ожидаю, что фреймворк просто передаст экземпляр класса модели в инстанс таски, и все! Но нет, так это почему-то не работает.

Самое странное, что, когда я убираю в классе Jobs\UpdateTable присваивание инстанса модели ($this->Model = $Model), все работает нормально.

Почему он пытается что-то получить из модели? Как сделать так, чтобы Laravel разрешил мне сохранить инстанс модели в свойстве?
Заранее спасибо.
  • Вопрос задан
  • 347 просмотров
Решения вопроса 1
JhaoDa
@JhaoDa
LaravelRUS Team
С чего вы решили, что фреймворк сам внедрит модель в конструктор? Документацию не читали?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы