У меня есть обновление этого метода для обновления данных (данные журнала), принадлежащих другим данным (данные edisi), ниже приведен код:

public function update(Jurnal $jurnal, JurnalRequest $request) {
        $input = $request->all();
        if ($request->hasFile('file') && $request->file('file')->isValid()) {
            // Delete old file
            $this->hapusPDF($jurnal);

            // Upload new file
            $input['file'] = $this->uploadPDF($request);
        }
        $id = $request->id; //retrieve id edisi

        $jurnal = Edisi::findOrFail($id)->jurnal()->update($input);
        return redirect()->route('edisi', ['id' => $id]);
    }

Приведенный выше метод дал мне эту ошибку: Нет результатов запроса для модели [App \ Edisi]. У меня вопрос, как заставить работать мой метод обновления? Спасибо ..

1
Ariando Miller 6 Сен 2016 в 08:48

3 ответа

Лучший ответ

Предполагая, что вы хотите обновить один journal и $jurnal имеет journal id, который вы хотите обновить, ваш оператор обновления будет выглядеть следующим образом:

$jurnal = Jurnal::findOrfail($jurnal->id)->update($input);
1
jaysingkar 6 Сен 2016 в 05:55

Вы используете findOrFail($id), и он не находит ни одной строки с id = $id, поэтому вызывает исключение. Вместо этого вы можете сделать это:

$edisi = Edisi::find($id);
if (!is_null($edisi)) {
    $jurnal = $edisi->jurnal()->update($input);
} else {
    echo 'There is no edisi with ID = '.$id;
    die();
}
1
Alexey Mezenin 6 Сен 2016 в 06:31

Я думаю, вы не получаете идентификатор, используя

$request->id

Вы должны использовать

$request->get('id') // And you must ensure that there is an input with 'id' name comming from client

Вы тоже можете использовать $input['id']. Я надеюсь, что это помогает.

0
jaysingkar 6 Сен 2016 в 06:08