Laravel 5.1 Post是空的,但是

时间:2015-10-16 00:02:23

标签: php mysql post laravel-5.1

我有一个奇怪的问题。我想更多的是一个语义的。

反正。我有一个表单,可以在DB中添加2个id-s,将n个问题连接到名为question_to_survey的表中的n个调查。我有一个值,我发布到另一个URL,但Post每次都是空的,而给定的值不是(URL末尾的连接)。

Controller Store方法(我真的是网络应用的新手):

public function store(Request $request)
{      
    dd(\Request::input());    
    $ids = $request->get('ids');

    $pieces = explode("_", $ids);
    $questionToSurvey = new QuestionToSurvey;
    $questionToSurvey->question_id = $pieces[0];
    $questionToSurvey->survey_id = $pieces[1];
    $questionToSurvey->save();

    return redirect('/admin/menu/questions/' . $pieces[0]);
}

视图中的调用(我测试了每个变量,它们都不是null。我在Post中需要的值是$ question-> id。" _"。$ survey- > ID)。我使用相同的表单在同一个项目中将更新发布到我的数据库对象,并且它可以正常工作。我正在使用FormFacade扩展。 $ compact通过compact给出了视图,我有我的数据库表的模型:

@foreach($surveys2 as $survey)
            <tr>
                <td>{{ $survey->name }}</td>
                <td>{{ $survey->id }}</td>
                <td>{!! Form::open(['url' => ['admin/menu/questions/add/binding', $question->id . "_" . $survey->id], 'method' => 'POST']) !!}
                        {!! Form::submit('Add connection', ['class' => 'btn btn-danger']) !!}
                    {!! Form::close() !!}</td>
            </tr>
            @endforeach

post通过dd(\ Request :: input())的输出(我添加的参数在哪里?):

array:1 [▼
"_token" => "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
 ]

它的路线:

Route::post('admin/menu/questions/add/binding/{id}', 'QuestionToSurveyController@store');

我错过了什么吗?我打赌这很容易,或者我只是打破了一些Laravel会议。

1 个答案:

答案 0 :(得分:0)

我有点困惑你所问的问题。根据我的理解,dd(\Request::input())和路由的输出是正确的,但我认为你的存储方法是错误的。您的商店方法必须如下所示:

public function store($id)
{      
    // Here $id is the id that you had passed in route parameter 
    $pieces = explode("_", $id);
    $questionToSurvey = new QuestionToSurvey();
    $questionToSurvey->question_id = $pieces[0];
    $questionToSurvey->survey_id = $pieces[1];
    $questionToSurvey->save();

    return redirect('/admin/menu/questions/' . $pieces[0]);
}