【问题标题】:Laravel - Deleting a row (table)Laravel - 删除一行(表格)
【发布时间】:2017-01-07 21:44:50
【问题描述】:

我正在使用 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');
}

}

我也会搜索并感谢您花时间解决我的问题 =)

附:我需要这个框架的最佳实践,所以如果你有一些想法可以让我更好地编码,我可以帮助像我这样的初学者 =)

【问题讨论】:

    标签: php mysql laravel-5 routes eloquent


    【解决方案1】:

    更改路线到:

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

    将锚点更改为:

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

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

    【讨论】:

    • 我明白你的意思,谢谢,但我不知道为什么,我有这个错误:找不到列:1054 Unknown column 'id' in 'where clause' (SQL: select * from players 其中id 在 (7))。编辑:我到处搜索,但我在 phpmyadmin 的列名中有 PLA_ID。我正在努力。
    • @Arkhall 你能更新你的帖子以显示PlayersController@deletePlayer的代码吗?
    • 函数没有变化,但这是我所有的文件PlayersController
    • 为路线找到了解决方案(这就是主题)。谢谢你的帮助=)
    【解决方案2】:

    您的路线不正确。改变它像

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

    html 锚点:

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

    【讨论】:

    • 谢谢,但是服务器找不到路由,我会根据你的答案调整它,也许我犯了一个错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    • 2015-09-22
    • 2016-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多