Я новичок в Ларавеле.
Я создал контроллер, модель и представления по способу / генератору от php artisan generate:scaffold cities
и его индексная страница (метод создания и хранения) Хорошо работает, но я не знаю, в чем проблема с методом 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
тоже хорошо работают.
В вашей модели вы protected $primaryKey='city_id';
но, на ваш взгляд, у вас есть:
{{ Form::model($city,array('route'=>array('admin.cities.update',$city->id),'method'=>'PUT','files'=>true)) }}
Я имею в виду, что $city->id
должен быть $city->city_id