2017-03-05 3 views
0

neu zu Laravel Rahmen hier. Ich habe hier ein Problem, die Löschfunktion in meinem Resource Controller aufzurufen. Es scheint, als würde die ausgewählte ID nicht gelöscht. Danke im Vorraus für deine Hilfe.Löschen Funktion: Laravel 5

Ressourcen/views/bufashaccts/allAccounts.blade.php

@extends('adminlte::page') 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title></title> 
</head> 
<body> 
<h1>view accounts!</h1> 
@foreach($bfaccounts as $userAccount) 
    <p>{{ $userAccount->acct_firstname }}</p><br> 
    <p>{{ $userAccount->acct_middlename }}</p><br> 
    <p>{{ $userAccount->acct_lastname }}</p> 
    @if ($userAccount->id) 
     <form action="/Accounts" method="POST"> 
      {{ csrf_field() }} 
      {{ method_field('DELETE') }} 
      <a href="/Accounts"> 
       <button type="button">delete</button> 
      </a> 
     </form> 
    @endif 
    <a href="/Accounts/{{ $userAccount->id }}/edit"> 
     <button type="button">edit</button> 
    </a> 
@endforeach 
</body> 
</html> 

app/http/controllers/AccountsController.php

<?php 

namespace App\Http\Controllers; 

use App\bufashaccounts; 
use Illuminate\Http\Request; 

class AccountsController extends Controller 
{ 

    public function index() 
    { 
     $bfaccounts = bufashaccounts::all(); 

     return view('bufashaccts.allAccounts', compact('bfaccounts')); 
    } 

    public function create() 
    { 
     return view('bufashaccts.addAccounts'); 
    } 

    public function store(Request $request) 
    { 
     bufashaccounts::create($request->all()); 

     return "success!"; 
    } 

    public function show($id) 
    { 
     $bfshowAccounts = bufashaccounts::findOrFail($id); 

     return view('bufashaccts.viewAccounts', compact('bfshowAccounts')); 
     //return $bfshowAccounts; 
    } 

    public function edit($id) 
    { 
     $bfeditAccounts = bufashaccounts::findOrFail($id); 

     return view('bufashaccts.editAccounts', compact('bfeditAccounts')); 
    } 

    public function update(Request $request, $id) 
    { 
     $bfeditAccounts = bufashaccounts::find($id); 
     $bfeditAccounts->update($request->all()); 

     return redirect('Accounts'); 
    } 

    public function destroy($id) 
    { 
     //$bfdeleteAccounts = bufashaccounts::findOrFail($id); 
     //$bfdeleteAccounts->delete(); 
     //return 'delete'; 
     $bfaccounts = bufashaccounts::findOrFail($id); 
     $bfeditAccounts->delete(); 

     //return view('bufashaccts.allAccounts', compact('bfaccounts')); 
     return redirect('/Accounts'); 
    } 
} 
+1

Warum haben Sie eine Schaltfläche in einem Link? –

+0

Wie haben Sie die Route dafür eingerichtet? – Sina

+0

Ich habe keine Route eingerichtet, da es sich um eine Ressourcenroute handelt. – JING

Antwort

0

Sie müssten Ihre Form ändern, wie etwas zu sein:

<form action="{{ url("/Accounts/$userAccount->id") }}" method="POST"> 
    {{ csrf_field() }} 
    {{ method_field('DELETE') }} 
    <button type="submit">delete</button> 
</form> 

Hoffe, das hilft!

+0

hat diesen Schaltflächentyp nicht angezeigt. Aber jetzt gibt es eine 'MethodNotFoundHttpException' zurück. antwortet nicht auf löschen oder post-Methode – JING

+0

Können Sie Ihre Frage bearbeiten und zeigen die 'Route' für Ihren Controller? –

+0

hilft die URL-Syntax. Ich muss es noch einmal überprüft haben. Aber, danke für die Antwort – JING

0
  1. Fügen Sie diese in Ihre Routendatei

    Route::delete('account/delete/{id}', ['as' => 'account.delete', 'uses' => '[email protected]']) 
    
  2. Ändern Sie bitte Ihre Blade-Datei

    <form action="{{ route('account.delete') }}" method="POST"> 
    {{ csrf_field() }} 
    {{ method_field('DELETE') }} 
    <button type="submit" class="btn btn-danger">Delete</button> 
    

auf diese Weise versuchen. Ich hoffe, es wird funktionieren.