На странице есть форма.
Для записи введенных данных в БД мне нужно найти конкретную строку из таблицы:
Происходит это следующим образом:
$alerts_info = $request->get('alert_info');
foreach ($alerts_info as $id => $value) {
$alert = AlertsModel::find($id + 1);
dd($alert);
$alert->alert_info = $value;
$alert->save();
}
Этот код работает. Через dd() проверяю, что записалось в переменную $alert
Получаю вот что:
И тут все нормально, но есть абсолютно идентичный код, который работать почему-то не хочет:
$visibility_vals = $request->get('block_visibility');
foreach ($visibility_vals as $id => $value) {
$visibility = VisibilityModel::find($id + 1);
if (is_null($value)) {
$value = 0;
};
//dd($visibility);
//$visibility->visible = $value;
//$visibility->save();
}
Тут в $visibility записывается null. И даже если написать find(1), например, то все равно будет null.
Причем, если сделать так:
$visibility_vals = $request->get('block_visibility');
foreach ($visibility_vals as $id => $value) {
$visibility = VisibilityModel::All();
if (is_null($value)) {
$value = 0;
};
dd($visibility);
$visibility->visible = $value;
$visibility->save();
}
То все работает хорошо.
И тогда доступ к любой строке я могу получить через $visibility[0];
Что я делаю не так? Как получается, что я могу получить доступ ко всей таблице, но не могу к её конкретной строке?