Laravel控制器更新方法不工作 [英] Laravel Controller update method not working

查看:143
本文介绍了Laravel控制器更新方法不工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是Laravel的新人。

I am new in Laravel.

我通过作曲家 way / generator 创建控制器,模型和视图 php artisan generate:scaffold cities 和它的索引页面(创建和存储方法)工作良好,但我不知道是什么是更新方法的问题。

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');
}

这是我的模型(城市): / p>

This is my model (city):

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:


Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException

Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException

note :我的视图效果很好。我认为问题是从控制器方法,和这个控制器的其他方法像创建存储也很好。 / em>

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

这篇关于Laravel控制器更新方法不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆