Laravel - 删除一行(表)

时间:2016-08-31 10:35:31

标签: php mysql laravel-5 routes eloquent

我正在使用laravel 5.2而我正在研究使用Eloquent操纵数据。我有一个表,我需要用一个按钮删除一行。

问题:服务器返回路由错误(NotFoundHttpException)

指南:我观看了这段视频https://www.youtube.com/watch?v=1EyoZhfZ2TY,以激励我获取数据。

这是路线( routes.php

Route::delete('players&/{id}', 'PlayersController@deletePlayer');

这是模板( players.blade.php )注意最后一个表数据(td)

     <tbody>
    <?php
        foreach($players as $player) {
    ?>
    <tr>
        <td><?php echo $player->PLA_ID?></td>
        <td><?php echo $player->PLA_Name?></td>
        <td><?php echo $player->PLA_Surname?></td>
        <td><?php echo $player->PLA_Pseudo?></td>
        <td><span class="glyphicon glyphicon-pencil"></span></td>
        <td><a href="delete&<?php echo $player->PLA_ID?>"><span class="glyphicon glyphicon-trash"></span></a></td>
    </tr>
    <?php }
    ?>
    </tbody>

最后是函数( PlayersController.php

<?php

namespace App\Http\Controllers;
use App\Models\Player;
use App\Http\Requests;
use Illuminate\Support\Facades\Input;

class PlayersController extends Controller
{
public function show(){ // reçoit l'url http://monsite.fr/users avec le      verbe "get" et qui retourne le formulaire.

    $players = player::all();
    return view('players', ['players' => $players]);
}

public function insertPlayer(){
    $player = new Player;

    $player->PLA_Name = Input::get('nom', false);
    $player->PLA_Surname = Input::get('prenom', false);
    $player->PLA_Pseudo = Input::get('pseudo', false);

    $player->save();

    return redirect('players');
}

public function deletePlayer($id){

    Player::destroy($id);
    return redirect('players');
}

}

我也会在我这边搜索并感谢你抽出时间来解决我的问题=)

P.S。我需要这个框架的最佳实践,所以如果你有一些想法让我能够更好地编写代码,我可以帮助像我这样的初学者=)

2 个答案:

答案 0 :(得分:0)

您的路线不正确。 Chnage有点像

Route::post('/delete/{id}',[
    'uses' => 'PlayersController@deletePlayer'
]);

html anchor:

<a href="{{ url('/delete/') }}<?php echo $player->PLA_ID?>"><span class="glyphicon glyphicon-trash"></span></a>

答案 1 :(得分:0)

将路线更改为:

Route::get('delete/{id}', 'PlayersController@deletePlayer');

将锚更改为:

<a href="{{ url('delete', $player->PLA_ID) }}"><span class="glyphicon glyphicon-trash"></span></a>

锚标记总是发出GET请求。这就是为什么路线需要成为GET路线的原因。希望这会有所帮助。