За последние 24 часа нас посетили 30486 программистов и 1807 роботов. Сейчас ищут 844 программиста ...

Передача множества параметров в метод

Тема в разделе "PHP для новичков", создана пользователем freelsd, 11 ноя 2018.

  1. freelsd

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

    С нами с:
    12 апр 2015
    Сообщения:
    63
    Симпатии:
    0
    У меня есть допустим метод, который должен апдейтить информацию о пользователе. Но параметров там получается тьма. Как лучше передавать? Массивом? И как потом сформировать запрос, чтобы апдейтились только те поля, которые были переданы в качестве аргумента в метод.
     
  2. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Ну по хорошему
    $user = User::find(1)
    $user->name = 'name'
    $user->save()
    ну и храни предыдущий стейт что бы можно было проверить что изменилось
    или при присвоении помечай какие поля изменились
    Тоже самое можно и с массивом
     
  3. freelsd

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

    С нами с:
    12 апр 2015
    Сообщения:
    63
    Симпатии:
    0
    Что вот так вот просто публичный аттрибут менять? Это разве нормально? :) А со стейтами не понял. Как это выглядеть должно примерно?
     
  4. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    представляешь:)
    https://laravel.com/docs/5.0/eloquent#insert-update-delete
    ну сделай поле raw и храни в нем массив с полученными значениями
    а при вызове save() проверяй текущее значение с предыдущим
     
  5. freelsd

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

    С нами с:
    12 апр 2015
    Сообщения:
    63
    Симпатии:
    0
    Ладно, спасибо
     
  6. ElisDN

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

    С нами с:
    13 фев 2018
    Сообщения:
    605
    Симпатии:
    130
    Не нормально, но для ActiveRecord вроде Eloquent сойдёт. А по-хорошему - тщательнее делать декомпозицию, чтобы аргументов не было много.