在我的表格中我有简单的更新表格,我可以填写模型的输入标签。但在点击提交按钮发送输入值后,我收到此错误:
Controller method not found.
我的表格:
{{Form::model( array('route'=>array('admin.profile.update',$profile->id), 'method'=>'post')) }}
我的路线:
Route::group(array('prefix'=> 'admin' ,'before'=>'auth'), function(){
Route::controller('profile', 'profileController', array('getIndex'=>'profile.index', 'postUpdate'=>'profile.update'));
});
我的控制员:
class ProfileController extends \BaseController {
protected $layout = 'layouts.admin.main';
function __construct() {
$this->beforeFilter('auth', array('except' => array('getIndex', 'postUpdate')));
$this->beforeFilter('csrf', array('on' => 'post'));
}
public function getIndex()
{
}
public function postUpdate($id)
{
}
}
html的结果:
<form accept-charset="UTF-8" action="http://localhost/alachiq/admin/profile/index" method="POST"><input type="hidden" value="fDhe6m2qHh7NOERQaGvwDPJwCkbGTIRr56IBHseI" name="_token">
形式的行动是:
http://localhost/alachiq/admin/profile/index
必须是:
http://localhost/alachiq/admin/profile/update
工匠路线:
GET admin/profile/index/{one?}/{two?}/{three?}/{four?}/{five?} | profile.index | profileController@getIndex
GET admin/profile | | profileController@getIndex
POST admin/profile/update/{one?}/{two?}/{three?}/{four?}/{five?} | profile.update | profileController@postUpdate
答案 0 :(得分:2)
你把'命名路线'放在这里;
{{Form::model( array('route'=>array('admin.profile.update',$profile->id), 'method'=>'post')) }}
但您的路线名称是“profile.update”(如您的工匠路线列表中所示) - 因此将其更改为
{{Form::model( array('route'=>array('profile.update',$profile->id), 'method'=>'post')) }}
编辑:我现在看到了问题。你已经完成了Form :: model()而不是Form :: open(),但你还没有将模型传递给表单。要么你需要传递你的模型:
{{Form::model($model, array('route'=>array('profile.update',$profile->id), 'method'=>'post'))
或将您的表单更改为这样打开:
{{Form::open( array('route'=>array('profile.update',$profile->id), 'method'=>'post'))
路线名称可能或可能仍然存在问题。