@miniven

Laravel: почему не могу получить доступ к модели?

На странице есть форма.
Для записи введенных данных в БД мне нужно найти конкретную строку из таблицы:

Происходит это следующим образом:

$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
Получаю вот что:

e78fc4b2dd134c228145f042b070ffa7.png

И тут все нормально, но есть абсолютно идентичный код, который работать почему-то не хочет:

$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();
        }


То все работает хорошо.
2f01f25d4bb3420da71c4e3757028528.png

И тогда доступ к любой строке я могу получить через $visibility[0];

Что я делаю не так? Как получается, что я могу получить доступ ко всей таблице, но не могу к её конкретной строке?
  • Вопрос задан
  • 242 просмотра
Решения вопроса 1
Denormalization
@Denormalization
То, что Model::all() возвращает данные - означает лишь то, что данные в БД есть.
Если find возвращает null - это значит что он не нашел записи с такой ID.
В БД точно есть записи с ID которые вы пытаетесь получить?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы