我是Laravel新手.
我通过作曲家php artisan生成的控制器,模型和视图/生成器视图/生成器:脚手架城市及其索引页(创建和存储方法)运行良好,但我不知道更新方法有什么问题.
这是我的CitiesController方法(更新):
public function update($id)
{
$city = City::findOrFail($id);
$validator = Validator::make($data = Input::all(), City::$rules);
if ($validator->fails())
{
return Redirect::back()->withErrors($validator)->withInput();
}
$city->update($data);
return Redirect::route('admin.cities.index');
}
这是我的模型(城市):
class City extends \Eloquent {
protected $primaryKey='city_id';
public static $rules = [
'name' => 'required',
'image' => 'mimes:jpeg',
'parent_id' => 'required',
'name' => 'required',
'english_name'=>'unique:cities,english_name|required'
];
protected $fillable = ['name', 'parent_id', 'english_name','population','phone_prefix','image'];
}
这是我的观点(编辑):
{{ Form::model($city,array('route'=>array('admin.cities.update',$city->id),'method'=>'PUT','files'=>true)) }}
@include('admin.forms._partial.formcity')
{{ Form::submit('submit') }}
{{ Form::close() }}
这是我的路线:
Route::group(array('prefix'=>'admin','before'=>'Auth'),function(){
Route::resource('cities', 'CitiesController');
});
当我单击提交按钮Laravel抛出此错误时:
Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException
注意:我的观点很好.我认为问题出在控制器方法上,该控制器的其他方法(例如创建和存储)也能很好地工作.
解决方法:
在您的模型中,您已经保护了$primaryKey =’city_id’;但您认为您有:
{{ Form::model($city,array('route'=>array('admin.cities.update',$city->id),'method'=>'PUT','files'=>true)) }}
我的意思是$city-> id应该是$city-> city_id
标签:php,laravel,controller
来源: https://codeday.me/bug/20191014/1911669.html