У меня есть проект Laravel (фактически проект Laravel Nova), который включает в себя ввод большого количества данных. Чтобы сэкономить время, я бы хотел предварительно заполнить некоторые поля в моей форме, основываясь на последней записи зарегистрированного пользователя.
Я могу предварительно заполнить поля с помощью переменной $ attribute в моей модели, называется Product
, вот так:
protected $attributes = [
'category' => 'ABC'
];
И я могу сделать это для большего количества динамических c данных в конструкторе примерно так:
function __construct() {
$this->attributes['category'] = Str::random();
parent::__construct();
}
Но я не совсем конечно, я бы go об этом узнал, когда я хочу получить то, что пользователь ввел в прошлый раз. Например, я хотел бы сделать это:
function __construct() {
$user = auth()->user()->id;
$last = Product::where('created_by', $user)->latest()->first();
$this->attributes['category'] = $last['category'] ?? null;
}
Однако это заканчивается бесконечным l oop. То же самое, если я позвоню $this->where('created_by' ...
Есть ли способ установить $attributes
нового Product
на основе последнего Product
, созданного пользователем?