2016-02-08 1 views
2

У меня возникли проблемы с выяснением причин, по которым мои данные не публикуются и хранятся в моей базе данных. Я использовал маршруты ресурсов для другой формы, и он отлично работает, но здесь по какой-то причине это не сработает. Нажатие кнопки submit просто обновляет страницу, без ошибок!Метод хранения не работает с использованием маршрута ресурса

У меня есть форма, которая получает подпрограммы тренировки из базы данных, и при подаче я хочу, чтобы это создало новую сессию тренировки в моей таблице базы данных (так называемые «тренировки»). Форма такова:

{{ Form::open(array('url' => '/')) }} 

      <div class="form-group"> 
       {{ Form::text('workout_name', Input::old('workout_name'), array('class' => 'form-control', 'placeholder' => 'Session Name')) }} 
      </div> 

      <div class="form-group"> 
       {{ Form::select('routines', $routine_names, null, array('class' => 'form-control')) }} 
      </div> 

       {{ Form::submit('Select Routine', array('class' => 'btn btn-success pull-right')) }} 

      {{ Form::close() }} 

В моей HomeController я это:

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

use App\Http\Requests; 
use App\Http\Controllers\Controller; 
use App\Routine; 
use App\Workout; 

class HomeController extends Controller 
{ 

public function index() 
{ 
    $routines = Routine::all(); 
    $routine_names = Routine::lists('routine_name'); 

    return view('workout')->with(array('routines'=>$routines, 'routine_names'=>$routine_names)); 
} 

public function store() 
{ 

    $workout = new Workout; 
    $workout->workout_name = Input::get('workout_name'); 
    $workout->save(); 

} 

}

У меня есть модель, созданную для тренировки, и маршрут для этой страницы заключается в следующем:

Route::resource('/', 'HomeController'); 

Я не могу понять, где я ошибаюсь. Метод index в моем контроллере работает, поскольку он возвращает правильный вид с необходимыми мне данными. Форма также выглядит нормально. Думаю, поскольку я отправляю на эту же страницу, но отправка не выполняет код, который у меня есть в методе store для HomeController.

Любая помощь будет оценена!

спасибо :)

+0

Вы нашли решение? –

ответ

3

Изменить маршрут Объявление от:

Route::resource('/', 'HomeController'); 

Чтобы что-то вроде этого:

Route::resource('/workout', 'WorkoutController'); 
+0

Я только что играл, и думаю, что я вижу проблему. Страница Workout - это домашняя страница, поэтому я использовал эту маршрутизацию. Кажется, проблема исходит из URL-адреса формы ('url' => '/'), как при отправке, проверяя журнал ошибок apache, он отправляет URL-адрес без косой черты. Если я установил абсолютный URL здесь, он отлично работает! Есть ли способ преодолеть это? – user3623348

0

Если вы используете команду ресурсов контроллера создателя php artisan то все для вас созданы определенные маршруты. Чтобы просмотреть все перечисленные маршруты, вы можете ввести php artisan routes. Это покажет вам RESTFUL маршруты даже для вашего метода POST.

А также даже вы не создали контроллер ресурсов и не сделали маршруты с ручным способом, то вы можете создать,

Route::POST('/workout' , [email protected]);

Я пытаюсь сказать, что вы должны использовать другой метод POST для представления формы.

Надеюсь, что это решит вашу проблему. Благодарю.