Laravel 5.2 - Удалить из БД - PullRequest
       3

Laravel 5.2 - Удалить из БД

0 голосов
/ 29 октября 2018

Я использую Laravel Framework version 5.2.45.

Я создал простое представление, которое выводит мои задачи:

@foreach($todos as $todo)
    {{ $todo->todo }} <button href="{{ route('todo.delete', ['id' => $todo->id]) }}" class="btn btn-danger">x</button>

    <hr>
@endforeach

В рамках моих маршрутов я создал следующий маршрут для удаления todo:

Route::get('/todo/delete/{id}', [
    'uses' => 'TodosController@delete',
    'as' => 'todo.delete'
]);

Внутри моего TodosController я создал следующий delete метод:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Todo;

class TodosController extends Controller
{

    public function delete($id) {
        $todo = Todo::find($id);

        $todo->delete();

        return redirect()->back();
    }
// ...

Когда я нажимаю кнопку в интерфейсе, ничего не происходит. Я не получаю никакой ошибки ...

Есть предложения, что не так с моей реализацией?

Ценю ваши ответы!

Ответы [ 4 ]

0 голосов
/ 29 октября 2018
@foreach($todos as $todo)
   {{ $todo->todo }} <a href="{{ route('todo.delete', ['id' => $todo->id]) }}" class="btn btn-danger">x</a>

@endforeach

delete code--
$toDo = Todo::findOrFail($id)->delete();
if($toDo){
   return response()->josn(['message'=>'deleted']);
}
0 голосов
/ 29 октября 2018

Вы используете кнопку, а не тег

превратить ваш код из

@foreach($todos as $todo)
   {{ $todo->todo }} <button href="{{ route('todo.delete', ['id' => $todo->id]) }}" class="btn btn-danger">x</button>
   <hr>
@endforeach

до

@foreach($todos as $todo)
   {{ $todo->todo }} <a href="{{ route('todo.delete', ['id' => $todo->id]) }}" class="btn btn-danger">x</a>
   <hr>
@endforeach
0 голосов
/ 29 октября 2018

Вы должны сделать так:

Кнопка удаления:

 <a class="btn btn-primary" href="{{ route('todo.delete',$todo->id) }}">Delete</a>

И функция удаления выглядит следующим образом:

public function delete($id) {
    try {
        $delete_flag = Todo::where(['id' => $id])->first();
        $delete_flag->delete();
        return redirect()->back()->with('success', 'Todo deleted successfully');
    } catch (Exception $ex) {
        return redirect()->back()->with('error', 'Something went wrong');
    }
}
0 голосов
/ 29 октября 2018

Попробуйте код ниже, вы использовали кнопку вместо тега

@foreach($todos as $todo)
            {{ $todo->todo }} <a href="{{ route('todo.delete', ['id' => $todo->id]) }}" class="btn btn-danger">x</a>

            <hr>
        @endforeach
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...