2017-03-05 17 views
0

ここにlaravelフレームワークの新機能があります。私はここで私のリソースコントローラの削除機能を呼び出すのにかなりの問題があります。選択したIDを削除していないようです。あなたの助けを前もってありがとう。削除機能:Laravel 5

リソース/ビュー/ 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> 

アプリ/ HTTP /コントローラ/ 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

なぜリンク内にボタンがありますか? –

+0

どのように経路を設定しましたか? – Sina

+0

私はリソースルートであるため、そのルートを設定しません – JING

答えて

0

次のようなものであるためにあなたのフォームを変更する必要があります:

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

+0

そのボタンタイプは見えませんでした。しかし、今は 'MethodNotFoundHttpException'を返します。 – JING

+0

あなたの質問を編集し、あなたのコントローラの 'ルート'を表示できますか? –

+0

では 'URL'構文が役に立ちます。さらにレビューしている必要があります。しかし、応答のおかげで – JING

0
  1. Route::delete('account/delete/{id}', ['as' => 'account.delete', 'uses' => '[email protected]']) 
    
  2. は、ブレード・ファイル

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

この方法を試してみてくださいを修正し、あなたのルートファイルでこれを追加します。それが動作することを願っています。