За последние 24 часа нас посетили 17540 программистов и 1588 роботов. Сейчас ищут 1447 программистов ...

Вычисляемое поле

Тема в разделе "Laravel", создана пользователем MRSgiba, 12 мар 2019.

  1. MRSgiba

    MRSgiba Активный пользователь

    С нами с:
    22 дек 2017
    Сообщения:
    200
    Симпатии:
    32
    Задача следующая:
    2 модели
    1. Очередь(Queue), поля id, name
    2. Талон (Talon), поля id, queue_id, name(не обязательное, создал сам)
    Нужно выводить А-1, Б-1, А-2 (т.е. у каждой очереди свою нумерацию талонов)
    Как решил я на данный момент (метод store контроллера TalonsController в $request приходит queue):
    PHP:
    1. public function store(Request $request)
    2. {
    3. $talon = Talon::create(['queue_id'=>$request->id]);
    4. $number = Talon::where('queue_id','=',$talon->queue->id)->count();
    5. $name = $request->name.'-'.$number;
    6. $talon->update(['name' => $name]);
    7. return $talon->name;
    8. }
    Подскажите более правильное решение (добавить мутатор или еще что-то), вопрос не срочный проект не масштабный, поэтому работать и так будет, но хотелось бы знать как правильно. Можно не давать развернутый ответ просто указать направление
     
    #1 MRSgiba, 12 мар 2019
    Последнее редактирование: 12 мар 2019
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    Сходу мне кажется что в твоей системе не хватает понятия "день". Ведь талончики выдаются в пределах дня, завтра нумерация начнется заново.
     
  4. MRSgiba

    MRSgiba Активный пользователь

    С нами с:
    22 дек 2017
    Сообщения:
    200
    Симпатии:
    32
    @artoodetoo Я лишние поля сюда не тянул, только то, что нужно для этого вопроса. Accessors тут не подойдет, т.к. будет переадрессация талона с очереди в очередь с сохранением имени, засим остается мутатор, но теперь возникает вопрос он при обновлении талона тоже отрабатывать будет или нет? Надо будет почитать внимательно
     
  5. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    Сейчас мне стало ещё меньше понятно что ты делаешь, чем вначале )))
    Так что, я отваливаю из темы. Походу ты не решил ещё что надо сделать, но уже ищешь как.

    Попробуй поискать Queue Management System database schema

    Я думаю, мутаторы здесь рояля не играют. ))) Надо думать о структуре данных, уникальности полей и об идемпотентности API )))