Я думаю, что мой мозг сегодня не функционирует, так как я не могу разобраться с этим.
У меня есть класс с массивом данных, например -
class Testing {
protected $fillable = ['questions.*.checked'];
protected $data = [
'active' => true,
'questions' => [
[
'question' => 'This is the first question',
'checked' => true,
],
[
'question' => 'This is the second question',
'checked' => false,
]
]
];
public function fill(array $attributes = []) {
// take our attributes array, check if the key exists in
// fillable, and if it does then populate our $data property
}
}
Я хотел бы сделать следующее: если я передам следующий массив методу Testing::fill()
, он обновит только соответствующие атрибуты, которые считаются заполняемыми.
Например, передав следующий массив
[
'active' => false,
'questions' => [
[
'question' => 'This is the first question',
'checked' => true,
],
[
'question' => 'This is the second question',
'checked' => true,
]
]
]
Изменяет только отмеченные флажки на объекте, а все остальное будет игнорироваться - только помечая свойства $ data attribute questions.*.checked
как true
Я чувствую, что естьрешение с помощью помощников Ларавела, но я просто не могу прийти к нему, или, может быть, я поступаю неправильно ...
В конечном счете, я просто хочу некоторый уровень очистки, чтобы, когда вся структураотправляется обратно в метод заполнения объектов, только некоторые элементы могут быть обновлены (как метод заполнения Laravel, только глубже с динамическими значениями).Проблема в том, что то, что на самом деле содержится в $ data, является динамическим, поэтому может быть один вопрос, может быть 100 ...