2016-11-04 3 views
0

Я изучаю Laravel 5.2 в последнее время, и я уже сделал функцию удаления, которая должна удалять записи из моей базы данных, но вместо того, чтобы deleteing записи этого добавления пустой строки в мою базу данныхфункция удаления Laravel 5,2

Этого это им маршрут с помощью:

Route::resource('producten', 'ProductenController', ['only' => ['index', 'store', 'destroy', 'edit', 'update', 'create']]); 

Это функция контроллера я использую для этого

public function destroy(request $request , product $product) 
{ 
    $product->delete(); 

    return redirect(Route('producten.index')); 
} 

Это форма я сделал для него.

{{ Form::Open(['Route' => 'producten.destroy', $product], ['method' => 'delete']) }} 
       {{ Form::Submit('delete')}} 
       {{ Form::close() }} 

, когда я рассматривал исходный код он сказал, что это было с помощью метода POST вместо удаления метода, а также когда я добавить ($ продукт) я получил пустую страницу, также я узнал, что, когда я ударил кнопку отправки он идет к методу магазина, я сделал, и я не знаю, почему,

если и нужно больше информации, просто дайте мне знать, и я добавлю его в вопросе

+1

Прежде всего, вы импортируете классы как строчные буквы ('request' вместо' Request')? Во-вторых, как вы ожидаете передать модель в качестве второго аргумента для destroy()? Обычно это будет '$ id', тогда вы используете' $ product = product :: find ($ id) 'в методе. – Devon

+0

Девон: вы можете использовать привязку к модели, а затем у вас есть объект модели в качестве аргумента. –

ответ

0

маршрута и метод должен быть в том же массиве, а не в двух разных массивах.

{{ Form::Open(['method' => 'DELETE', 'route' => ['producten.destroy', $product]]) }} 
    {{ method_field('DELETE') }} 
    {{ Form::Submit('delete')}} 
{{ Form::close() }} 
+0

Вы можете использовать объект в маршруте, используя Model Binding –

+0

Хорошо, если это так, неважно, но вам все равно придется использовать уникальный массив для передачи метода и маршрута при объявлении формы :: Open. @MarekSkiba Я обновил свой андерсер, удалив часть относительно привязки к модели. Простите за это. – GiuServ

0

Я думаю, что у вас что-то не так с формой. Вы можете попробовать:

<form action="{{ route('producten.destroy', ['product' => $product->id]) }}" method="POST"> 
    {{ csrf_field() }} 
    {{ method_field('DELETE') }} 

    <button type="submit">Remove</button> 
</form>