Php 尽管使用了';可填充';检查所有变量后,我在控制器中的创建方法不会将输入保存到模型

Php 尽管使用了';可填充';检查所有变量后,我在控制器中的创建方法不会将输入保存到模型,php,laravel,laravel-5,Php,Laravel,Laravel 5,我试图使用表单和控制器将一些数据保存到模型中 表单如下所示: <body> <div class="container"> <h1>Assign days to event</h1> {{ Form::open(array('url' => 'days')) }} <div class="form-group"> {{ Form::label('event_na

我试图使用表单和控制器将一些数据保存到模型中

表单如下所示:

<body>
    <div class="container">

    <h1>Assign days to event</h1>

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

        <div class="form-group">
            {{ Form::label('event_name', 'Event Name') }}                
            {{ Form::select('event_name', $events, null) }}
        </div>

        <div class="form-group">
            {{ Form::label('day_number', 'Number of Days') }}                
            {{ Form::text('day_number', Input::old('day_number'), array('class' => 'form-control')) }}
        </div>

        {{ Form::submit('Assign!', array('class' => 'btn btn-primary')) }}

    {{ Form::close() }}

    </div>
</body>
namespace StrawDogBuilder\Http\Controllers;

use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Input;
use View;
use Session;
use Redirect;
use StrawDogBuilder\Day;
use StrawDogBuilder\Event;
use Illuminate\Http\Request;

public function create()
{
    $events = Event::pluck('id');
    return View::make('days.create')
        ->with('events', $events);
}


public function store()
{
    $rules = array(
        'event_id'  =>  'required',


        'day_number'    =>  'required'
    );
    $validator = Validator::make(Input::all(), $rules);

    if ($validator->fails()) {
        return Redirect::to('days/create')
            ->withErrors($validator)
            ->withInput(Input::except('password'));
    } 
        else {
            $day = new day;
            $day->event_id  = Input::get('event_name');
            $day->day_number  = Input::get('day_number');
            $day->save();

            Session::flash('message', 'You have assigned this event a number of days');
            return Redirect::to('days');
    }
}
我的模型是这样的

class Day extends Model
{
    protected $fillable = ['id','event_name','day_number'];

public function mods() 
{
    return $this->hasMany('App\Mod');
}

// Get the Event this day is attributed to
public function event()
{
    return $this->belongsTo('App\Event');
}
}
表单创建时没有错误,但是当我向字段添加值并点击“分配”时它将保持在同一页上,并且不会表明它是否做了任何事情。检查该表表明它尚未保存数据


我是否遗漏了导致表单通过控制器保存数据的内容?如果是,可能是什么原因?

首先将表单修改为

{!! Form::open(['route'=>'days.store']) !!}
然后在你的控制器里

public function store(Request $request)
{

    $this->validate($request,
        array(
            'event_id'  =>  'required',
            'day_number'    =>  'required',
        )
    );

    $day = new Day;
    $day->event_id  = $request->event_name;
    $day->day_number  = $request->day_number;
    $day->save();

    Session::flash('message', 'You have assigned this event a number of days');
    return redirect()->route('days');
}

今天不是你上课的日子,也不是你上课的日子。您是否在控制器中导入了该模型?@Exprator-类不区分大小写,但我同意使用
Day
会更容易理解@stntmnky-你能提供更多关于模型文件的详细信息,比如名称空间和任何
use
语句吗?每天都在修复,我已经导入了模型,但似乎还没有修复。是的,但为了让我们更好地理解,即使使用POST,你也应该遵循一些规则?因为你没有提到类型。因此,通常需要GET请求。请尝试
returnresponse()->json($request)在控制器的开始处,检查所有输入是否正确传递