我正在使用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。我需要这个框架的最佳实践,所以如果你有一些想法让我能够更好地编写代码,我可以帮助像我这样的初学者=)
答案 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路线的原因。希望这会有所帮助。