2015-01-16 7 views
1

Я новичок в Laravel.Метод обновления контроллера Laravel не работает

Я сделал контроллер, модель и вид от пути/генератора от композитора php artisan generate:scaffold cities и его страницы индекса (Create и способ хранения) работает хорошо, но я не знаю, что это проблема с update методом.

Это мой метод CitiesController (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 разлета этой ошибки:

Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException

примечания: Мой взгляд работает хорошо. Я думаю, проблема связана с методом контроллера, и другие методы этого контроллера, такие как create и store, тоже хорошо работают.

+0

генерируются, что проблема обусловленно вы имеете неполноценную декларацию о маршруте в вашем routes.php – ITroubs

+0

, пожалуйста, сообщите нам свои маршруты.php – ITroubs

+0

@ITroubs Я добавил свой маршрут тоже –

ответ

0

В вашей модели у вас есть protected $primaryKey='city_id';, но по вашему мнению, у вас есть:

{{ Form::model($city,array('route'=>array('admin.cities.update',$city->id),'method'=>'PUT','files'=>true)) }} 

Я имею в виду $city->id должен быть $city->city_id