Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正在尝试使用带有laravel的html链接删除用户_Php_Laravel - Fatal编程技术网

Php 正在尝试使用带有laravel的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

我有一些具有不同权限的用户,管理员可以删除用户。我正试图使用html链接从数据库中删除这些用户……但我真正的问题是,为什么一开始就不删除用户

路线

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不工作。