2017-09-19 188 views
0

我試圖使用路由模型綁定爲簡單的CRUD但更新和刪除功能不工作。和我使用laravel 5.5路由模型綁定不起作用

Route::resource('admin/file','AdminController'); 

我查看編輯和刪除按鈕

<a href="{{ route('file.edit', ['id'=>$file->id]) }}"> 

<form action="{{ route('file.destroy', ['id'=>$file->id]) }}" method="post"> 
    {{method_field('DELETE')}} 
    {{csrf_field()}} 
    <button type="submit" class="delete">delete</button> 
</form> 

我的資源控制器:

namespace App\Http\Controllers; 

use App\Files; 
use Illuminate\Http\Request; 

店做工精細

public function store(Request $request) 
{ 
    $this->validate($request,[ 
     'title'=>'required', 
     'body'=>'required', 
     'price'=>'required', 
     'linkFile'=>'required', 
    ]); 

    Files::create($request->all()); 
    return redirect(route('file.index')); 
} 

但編輯和刪除不工作

public function edit(Files $files) 
{ 
    return view('admin.edit',compact('files'))->with('title','Edit File'); 
} 

public function destroy(Files $files) 
{ 
    $files->delete(); 
    return redirect(route('file.index')); 
} 

我的模型:

protected $table='files'; 

protected $fillable=[ 
    'title','body','price','linkFile' 
]; 

當我刪除按鈕沒有任何反應和編輯作爲同

如果我在第一列添加dd($files)的編輯和刪除功能,那麼響應將被[]和有沒有錯誤處理

在這裏我的路由列表

enter image description here

任何人都可以幫忙嗎?

+1

你的行動網址是錯誤的,你必須傳遞變量段不url參數。 –

+0

謝謝你。現在工作很好 – siros

回答

0

最後2天之後,我覺得我的答案,我想在這裏把我的答案對於每個人也許有我的問題

對於路由綁定工作,你應該有類型暗示的變量名匹配的路由段名根據需要的文檔:

比如我編輯功能:

這裏我的路線URI編輯

admin/file/{file}/edit 

你可以看到有{file}參數或任何你叫 現在只需要寫在功能參數究竟$文件

public function edit(Files $file) 
{ 
    return view('admin.edit',compact('file')); 
} 

很抱歉,如果我的英語很差