Php 正在尝试使用带有laravel的html链接删除用户
我有一些具有不同权限的用户,管理员可以删除用户。我正试图使用html链接从数据库中删除这些用户……但我真正的问题是,为什么一开始就不删除用户 路线Php 正在尝试使用带有laravel的html链接删除用户,php,laravel,Php,Laravel,我有一些具有不同权限的用户,管理员可以删除用户。我正试图使用html链接从数据库中删除这些用户……但我真正的问题是,为什么一开始就不删除用户 路线 Route::group(array('before' => 'auth'), function() { Route::get('/user/home' , array('before' => 'user', 'uses' => 'UserController@userHome')); Route::get('/te
Route::group(array('before' => 'auth'), function()
{
Route::get('/user/home' , array('before' => 'user', 'uses' => 'UserController@userHome'));
Route::get('/tech/home', array('before' => 'tech', 'uses' => 'TechController@techHome'));
Route::get('/admin/home', array('before' => 'admin', 'uses' => 'AdminController@adminHome'));
Route::get('/admin/show/users', array('before' => 'admin', 'uses' => 'AdminController@adminShowUsers'));
Route::delete('/admin/delete/{$id}', 'AdminController@adminDelete');
});
管理员控制器
public function adminShowUsers(){
$users = User::all();
return View::make('admin/showUsers')->with('users',$users);
}
public function adminDelete($id){
$user = User::find($id);
var_dump($user);
}
showUsers视图
<?php
foreach($users as $user){
$id = $user->id;
echo "<a href='/admin/delete/" . $id . "'>". $user->username ."</a>";
?>
<?php
}
Route::delete
路由只匹配使用httpdelete方法的请求。现在的问题是,您无法创建使用该方法的“正常”链接。(POST和PUT也是如此)
您可能知道,我们可以使用HTML表单发送POST请求。但是HTML表单不支持DELETE方法。但是,当使用Form::open
时,Laravel通过自动发送带有请求的\u方法
参数来缩小这一差距
因此,您可以使用指向路线的表单,其中只有一个提交按钮:
echo Form::open(array('url' => '/admin/delete/'.$id, 'method' => 'delete'));
echo Form::submit($user->username);
echo Form::close();
或者,更简单一些,(我在您已经发现的注释中看到),您可以将路由更改为route::get
。不过我还是想写下这个答案,让你知道到底发生了什么,可能的解决方案是什么。你有没有检查到目前为止一切正常?路由正在提取$id
参数吗?如果我在adminDelete函数中回显id,我仍然会得到一个错误,这就是你的意思吗?好的,我将路由更改为route::get('/admin/delete/{id}','AdminController@adminDelete'); 是的,如果id没有通过,那么find函数将不会返回记录,这将解释为什么vardump不工作。