Я хочу создать уникальный код для объекта загрузки
В настоящее время модель расширяет функцию создания Kohana
public function create(Validation $validation = NULL)
{
// fails as there is no $user_id passed through...
$this->code = $this->generate_code($user_id);
parent::create($validation);
}
, которая вызывает:
protected function generate_code($user_id)
{
$code = $user_id.str_pad($this->id, 6, '0', STR_PAD_LEFT);
return $code;
}
У меня есть две проблемы: во-первых, я хочу использовать user_id в начале кода.Я думал о вызове статической функции в пользовательской модели, чтобы получить ее, но думаю, что это плохая идея, потому что я прочитал, что лучше делать модели независимыми от других моделей.Как лучше это сделать, возможно, с помощью значения в данных сеанса (или это плохая практика)?
Вторая проблема заключается в том, что я хотел бы добавить идентификатор загрузки в конец кода ((это автоматически увеличиваемое значение), однако это значение будет установлено только после того, как оно было создано, но оно не будет иметь генерируемый код после создания, потому что для столбца кода в базе данных установлено уникальное значение.Есть ли элегантный обходной путь для этого?
edit: я исправил вторую проблему, добавив идентификатор после ее создания, например:
public function create(Validation $validation = NULL, $user_id)
{
$this->code = $user_id.time();
parent::create($validation);
$this->code = $this->code.str_pad($this->id, 6, '0', STR_PAD_LEFT);
}