удалить MySQL с Laravel - PullRequest
       9

удалить MySQL с Laravel

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

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

Маршрут:

Route::get('/home', 'HomeController@index')->name('home');
Route::post('/home/linha/insert', 'HomeController@insert')->name('home');
Route::post('/home/linha/remove','HomeController@deletar');

Контроллер:

    public function deletar(Request $request)
{


    $id = $request->input('id');

     DB::delete('delete from linha where id = :id' ,['id' => $id]);


      return redirect('home');


}

Просмотр:

<div class="col-md-9" style="margin-top:20px;">
    <div class="col-md-9"><?php echo "$linha->msg"; ?></div>
    @if($linha->iduser == auth()->user()->id)
    <div class="col-md-3"><form action="/home/linha/remove" method="post">
        {{ csrf_field() }}
        <input type="hidden" name="id" id="id" value="{{$linha->id}}">
       <button type="submit" class="btn btn-danger btn-sm">
          <span class="glyphicon glyphicon-remove"></span> Remover 
        </button>
        </form>
        </div>@endif
</div>

Ответы [ 5 ]

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

В Laravel есть два способа:

  1. Soft Delete - обновляет столбец delete_at.
  2. Запустить запрос для удаления определенного идентификатора таблицы, думаю, это может сработать для вас.
0 голосов
/ 01 октября 2018

Попробуйте: Это также было показано в Документации Laravel.

$deleted = DB::delete('delete from linha where id = ?',[$id]);

Вот ссылка на Документацию (https://laravel.com/docs/5.7/database).

Или Вы можете использовать laravel eloquent"linha"

$request->YourModel()->findOrFail($id)->delete();
0 голосов
/ 01 октября 2018

Вы можете попробовать это

public function deletar(Request $request){

    $id = $request->input('id');
    if( \DB::table('linha')->where('id', $id)->delete() ){
        // deleted successfully
    }

    return redirect('home');
}
0 голосов
/ 01 октября 2018

Существует несколько способов удаления записей в базе данных (в запросе нет синтаксической ошибки)

следуйте этому заявлению для отладки

, вы должны использовать dd(DB::getQueryLog()); и вы получите сыройзапросить и выполнить этот необработанный запрос в базе данных вручную

1-й способ (красноречиво)

$linha= linha::find($id);
$linha->delete();

2-й способ

DB::table('linha')->where('id', '=', $id)->delete();

3-й способ

DB::delete('SQL QUERY HERE');

для получения дополнительной информации прочитайте Руководство по удалению laravel

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

Я думаю, что это должно быть так:

 DB::delete('delete from linha where id = ?' ,[$id]);

Это просто синтаксис.

В качестве альтернативы, вы можете использовать эту строку:

 DB::table('linha')->where('id', $id)->delete();
...