我在使用URL :: route方面遇到了问题。我的控制器中有一个叫做AuthController的公共函数叫做delete_character,这是它的外观:
public function delete_character()
{
$player->delete();
return View::make('index')->with('danger', 'You have successfully deleted your character!');
}
另外,我创建了一条命名路线:
Route::post('delete_character', array(
'as' => 'delete_character',
'uses' => 'AuthController@delete_character'
));
我想要做的就是执行$player->delete
。我不希望它成为一个网站,只要我点击一个按钮它就会删除播放器。
我也完成了按钮:
<td><a class="btn btn-mini btn-danger" href="{{ URL::route('delete_character') }}"><i class="icon-trash icon-white"></i> Delete</a></td>
但我不断得到MethodNotAllowedHttpException
。任何提示?
答案 0 :(得分:1)
在我的示例中,我使用GET
请求方法(例如,在提交表单时使用POST)来捕获此操作。
我在reqeust网址中传递了我想要删除的客户端的ID,这会在此格式中生成网址:http://localhost:8888/k/public/admin/client/delete/1
(您应该根据您的示例/请求从表单发布)。
不为您发布整个解决方案,迫使您学习!我的回答与你的情况不完全相同,但肯定会有所帮助。
// routes.php
Route::group(['prefix' => 'admin'], function(){
Route::get('client/delete/{id}', 'Admin\\ClientController@delete');
});
// ClientController.php
<?php
namespace Admin;
use Client;
class ClientController extends BaseController
{
...
public function delete($clientId)
{
$client = Client::findOrFail($clientId);
// $client->delete();
// return Redirect::back();
}
...
}
// view file, here you generate link to 'delete' action
<a href="{{ URL::action('Admin\\ClientController@delete', ['id' => $client->id]) }}">delete</a>