存储方法无法使用资源路由
Store method not working using resource route
我无法弄清楚为什么我的数据没有发布和存储在我的数据库中。我已经将资源路由用于另一种形式并且它工作正常,但由于某种原因它在这里不起作用。点击提交似乎只是刷新页面,没有错误!
所以我有一个从数据库中获取锻炼程序的表格,在提交时我希望它在我的数据库 table 中创建一个新的锻炼 "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();
}
}
我有一个为锻炼创建的模型,此页面的路线如下:
Route::resource('/', 'HomeController');
我不知道哪里出了问题。我的控制器中的索引方法正在运行,因为它返回包含我需要的数据的正确视图。我认为表单看起来也不错,因为我正在发布到同一页面,但提交似乎没有执行我在 HomeController 的存储方法中的代码。
如有任何帮助,我们将不胜感激!
谢谢 :)
更改您的路线声明:
Route::resource('/', 'HomeController');
像这样:
Route::resource('/workout', 'WorkoutController');
如果您正在使用 php artisan
的资源控制器创建者命令,那么所有特定的路由都会为您创建。要查看所有列出的路线,您可以键入,php artisan routes
。这将为您显示 RESTFUL 路线,即使您的 POST 方法也是如此。
而且即使你没有创建资源控制器并用手动方式创建路由然后你也可以创建,
Route::POST('/workout' , SomeController@post);
我想说的是,您必须使用不同的 POST 表单提交方法。
希望这能解决您的问题。谢谢
我无法弄清楚为什么我的数据没有发布和存储在我的数据库中。我已经将资源路由用于另一种形式并且它工作正常,但由于某种原因它在这里不起作用。点击提交似乎只是刷新页面,没有错误!
所以我有一个从数据库中获取锻炼程序的表格,在提交时我希望它在我的数据库 table 中创建一个新的锻炼 "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();
}
}
我有一个为锻炼创建的模型,此页面的路线如下:
Route::resource('/', 'HomeController');
我不知道哪里出了问题。我的控制器中的索引方法正在运行,因为它返回包含我需要的数据的正确视图。我认为表单看起来也不错,因为我正在发布到同一页面,但提交似乎没有执行我在 HomeController 的存储方法中的代码。
如有任何帮助,我们将不胜感激!
谢谢 :)
更改您的路线声明:
Route::resource('/', 'HomeController');
像这样:
Route::resource('/workout', 'WorkoutController');
如果您正在使用 php artisan
的资源控制器创建者命令,那么所有特定的路由都会为您创建。要查看所有列出的路线,您可以键入,php artisan routes
。这将为您显示 RESTFUL 路线,即使您的 POST 方法也是如此。
而且即使你没有创建资源控制器并用手动方式创建路由然后你也可以创建,
Route::POST('/workout' , SomeController@post);
我想说的是,您必须使用不同的 POST 表单提交方法。
希望这能解决您的问题。谢谢