Laravel Controller update method not working(Laravel 控制器更新方法不起作用)
问题描述
我是 Laravel 的新手.
I am new in Laravel.
我通过作曲家php artisan generate:scaffold city
的way/generator和它的索引页(创建和存储方法)制作了控制器、模型和视图,但我工作得很好不知道 update
方法有什么问题.
I made controller, Model and views by way/generator by composer php artisan generate:scaffold cities
and Its index page (Create and store method) Working well but I don't know what is the problem with update
method.
这是我的 CitiesController 方法(更新):
This is my CitiesController method(Update):
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'];
}
这是我的观点(编辑):
<ul>
{{ Form::model($city,array('route'=>array('admin.cities.update',$city->id),'method'=>'PUT','files'=>true)) }}
<!--Here I included my form-->
@include('admin.forms._partial.formcity')
<li>
{{ Form::submit('submit') }}
</li>
{{ Form::close() }}
</ul>
这是我的路线:
Route::group(array('prefix'=>'admin','before'=>'Auth'),function(){
Route::resource('cities', 'CitiesController');
});
当我点击提交按钮 Laravel 抛出这个错误:
When I click on submit button Laravel throwout this error:
SymfonyComponentHttpKernelExceptionMethodNotAllowedHttpException
Symfony Component HttpKernel Exception MethodNotAllowedHttpException
注意:我的观点很有效.我认为问题出在控制器方法上,该控制器的其他方法如 create
和 store
也可以正常工作.
note:My view works well. I think the problem is from controller method, and other methods of this controller like create
and store
works well too.
推荐答案
在你的模型中你有 protected $primaryKey='city_id';
但在你看来你有:
In your model you have protected $primaryKey='city_id';
but in your view you have:
{{ Form::model($city,array('route'=>array('admin.cities.update',$city->id),'method'=>'PUT','files'=>true)) }}
我的意思是 $city->id
应该是 $city->city_id
I mean $city->id
should be $city->city_id
这篇关于Laravel 控制器更新方法不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Laravel 控制器更新方法不起作用
基础教程推荐
- 如何在 Symfony 和 Doctrine 中实现多对多和一对多? 2022-01-01
- 在 yii2 中迁移时出现异常“找不到驱动程序" 2022-01-01
- 在 CakePHP 2.0 中使用 Html Helper 时未定义的变量 2021-01-01
- 找不到类“AppHttpControllersDB",我也无法使用新模型 2022-01-01
- 如何在 XAMPP 上启用 mysqli? 2021-01-01
- HTTP 与 FTP 上传 2021-01-01
- PHP 守护进程/worker 环境 2022-01-01
- Doctrine 2 - 在多对多关系中记录更改 2022-01-01
- phpmyadmin 错误“#1062 - 密钥 1 的重复条目‘1’" 2022-01-01
- 使用 PDO 转义列名 2021-01-01