存储方法无法使用资源路由

时间:2016-02-08 11:44:50

标签: laravel laravel-5 laravel-5.2

我无法弄清楚为什么我的数据没有发布并存储在我的数据库中。我已经使用了另一种形式的资源路由,它工作正常,但由于某种原因它不起作用。单击“提交”似乎只是刷新页面,没有错误可以使用!

所以我有一个从数据库中获取训练程序的表单,在提交时我想要在我的数据库表中创建一个新的Workout“session”(称为“Workouts”)。形式如下:

{{ 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();

}

}

我为Workout创建了一个模型,该页面的路径如下:

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

我无法弄清楚我哪里出错了。我的控制器中的索引方法正在工作,因为它返回正确的视图和我需要的数据。表单看起来也很好我觉得,因为我发布到同一页面,但提交似乎没有执行我在HomeController的store方法中的代码。

任何帮助将不胜感激!

谢谢:)

2 个答案:

答案 0 :(得分:3)

从以下位置更改路线声明:

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

对于这样的事情:

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

答案 1 :(得分:0)

如果您使用php artisan的资源控制器创建者命令,则会为您创建所有特定路由。要查看所有列出的路线,您可以输入php artisan routes。即使您的 POST 方法也会显示RESTFUL路由。

即使你没有创建资源控制器并且确实用手动方式制作了路线然后你可以创建,

Route::POST('/workout' , SomeController@post);

我想说,你必须使用不同的POST方法进行表单提交。

希望这能解决您的问题。感谢。