Это контроллер MessagesController
:Laravel5: Не удается удалить из БД
public function destroy(Messages $id)
{
\DB::delete(
'DELETE FROM messages WHERE id=' . $id
);
return redirect()->route('messages.index')->with('message', 'Deleted.');
}
Это routes.php:
Route::delete('messages.destroy', ['as' => 'messages.destroy', 'uses' => '[email protected]']);
Это вид файла:
{!! Form::open(array('route'=>['messages.destroy',$message->id],'method'=>'DELETE')) !!}
{!! Form::button('Delete',['class'=>'btn btn-danger','type'=>'submit']) !!}
{!! Form::close() !!}
Так , У меня есть ошибка:
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '[]' at line 1 (SQL: DELETE FROM messages WHERE id=[])
Я понимаю, что идентификатор отсутствует на контроллере. Как это решить?
P.S. Кроме того, попробовал, как это в контроллере:
public function destroy(Messages $message)
{
$message->delete();
return redirect()->route('messages.index')->with('message', 'Deleted.');
}
Это просто показывает сообщение Deleted
. но это не удаление вещи.
эхо $ сообщение показывает скобки "[]" на этой странице. –
и путь в браузере - «/messages.destroy?16». 16 является идентификатором объекта. –
Возможно, это потому, что вы отправляете его как массив. Попробуйте это без массива в виде вашего лезвия: {!! Форма :: open ('route' => ['messages.destroy', $ message-> id], 'method' => 'DELETE') !!} {!! Form :: button ('Delete', ['class' => 'btn btn-danger', 'type' => 'submit']) !!} {!! Form :: close() !!} –