我使用的是laravel 5.2,我正在用Eloquent学习数据操作。我有一个表,我需要删除一行与按钮。
Problem: The server return a route error (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');
}
}
我也会在我这边搜索,谢谢你花时间来解决我的问题=)
注:我需要这个框架的最佳实践,所以如果你有一些想法,让我更好地编码,我可以帮助一些像我一样的初学者=)
更改路由为:
Route::get('delete/{id}', 'PlayersController@deletePlayer');
将锚改为:
<a href="{{ url('delete', $player->PLA_ID) }}"><span class="glyphicon glyphicon-trash"></span></a>
锚标记总是发出GET请求。这就是为什么路由需要是GET路由的原因。
您的路由错误。把它改成
Route::post('/delete/{id}',[
'uses' => 'PlayersController@deletePlayer'
]);
html锚:<a href="{{ url('/delete/') }}<?php echo $player->PLA_ID?>"><span class="glyphicon glyphicon-trash"></span></a>