繁体   English   中英

Laravel 5.1 Post为空,但未提供null参数

[英]Laravel 5.1 Post is empty, but not null argument given

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

无论如何。 我有一个视图,用于向数据库中添加2个id-s,该数据库将n个问题连接到名为question_to_survey的表中的n个调查中。 我有一个值,我将该值发布到另一个URL,但是Post每次都是空的,而给定的值不是(在URL末尾串联)。

Controller Store方法(我真的是Web应用程序的新手):

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扩展。 $ question是通过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

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

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

路线:

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

我想念什么吗? 我敢打赌这很容易,或者我只是违反了某种Laravel惯例。

我有点困惑你在问什么。 据我了解,您的dd(\\Request::input())和route的输出是正确的,但我认为您的store方法是错误的。 您的存储方法必须如下所示:

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]);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM