2015-03-25 3 views
0

routes.phpLaravel 4,2 результат обновления не работает

Route::put('questions/{id}', array('as' => 'update.question','before' => 'csrf', 'uses'=> '[email protected]')); 
Route::get('question/{id}', array('as' => 'question', 'uses'=> '[email protected]')); 

Route::get('questions/{id}/edit', array('as' => 'edit_question', 'uses'=> '[email protected]')); 

QuestionsController.php

public function edit($id) 
{ 
    if(!$this->question_belongs_to_user($id)) 
    { 
     return Redirect::to('your_questions') 
      ->with('message', 'Invalid Question'); 
    } 

    return View::make('questions.edit') 
      ->with('title', 'Make It Snappy Q&A - Home') 
      ->with('question', Question::find($id)); 
} 

public function update($id) 
{ 
    $id = Input::get('question_id'); 

    if(!$this->question_belongs_to_user($id)) 
    { 
     return Redirect::to('your_questions') 
       ->with('message', 'Invalid Question'); 
    } 

    $validation = Question::validate(Input::all()); 

    if ($validation->passes()) { 

      $newData =[ 
      'question' => Input::get('question'), 
      'solved' => Input::get('solved'), 
      ]; 

     $Question=Question::find($id); 
     $Question->fill($newData)->save(); 

     return Redirect::to('question', $id) 
       ->with('message', 'Your question has been updated!.'); 
    } else { 

     return Redirect::to('edit_question')->withErrors($validation)->withInput(); 
    } 
} 

edit.blade.php

@extends('layouts.default') 

@section ('содержание')

<h1>Edit Your Question</h1> 

@if($errors->has()) 
    <ul id="form-errors"> 
     {{ $errors->first('question', '<li>:message</li>>') }} 
     {{ $errors->first('solved', '<li>:message</li>>') }} 
    </ul> 
@endif 

{{ Form::model($question, array('route' => array('update.question', $question->id), 'method' => 'put')) }} 
    <p> 
     {{ Form::label('question', 'Question') }} 
     {{ Form::text('question', $question->question) }} 
    </p> 

    <p> 
     {{ Form::label('solved', 'Solved') }} 

     @if($question->solved == 0) 
      {{ Form::checkbox('solved', 1, false) }} 
     @elseif($question->solved == 1) 
      {{ Form::checkbox('solved', 0, true) }} 
     @endif 
    </p> 

    {{ Form::hidden('question_id', $question->id) }} 

    <p> {{ Form::submit('Update') }} </p> 
{{ Form::close() }} 

@stop

попытка обновить запись следующее сообщение об ошибке облицовочный, где проблема

[2015-03-25 14:15:04] production.ERROR: exception 'Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException' in E:\Web\xampp\htdocs\makeitsnappy\vendor\laravel\framework\src\Illuminate\Routing\RouteCollection.php:210 

, где запись обновляется в таблицу назначения, но при перенаправление на маршрут return Redirect::to('question', $id) здесь это не работает

после попробуйте в оба конца Form::model(), и Form::open() но зря?

+3

Пожалуйста, попробуйте перефразировать ваш вопрос и сделать его более ясным. Как сейчас, на самом деле не совсем понятно, какова ваша проблема. – mhlz

+0

На самом деле, мой английский так, что нехорошо, постарайтесь стать хорошим –

ответ

0

Redirect::to() требует полного пути. Изменить это использовать метод маршрут(), а также обеспечить параметры маршрута:

Redirect::route('question', array('id' => $id));

+0

Редирект :: to ('question'. $ Id), когда я пытаюсь с точкой. не точка с запятой в маршруте, а затем ее работая, но в остальной части все еще показывают ту же ошибку –

Смежные вопросы