Laravel将值从下拉列表发送到控制器

时间:2015-03-21 10:51:35

标签: php laravel

我在视图页面中有以下代码

 <form action="{{ action('AnswerController@handleCreate') }}" method="post" role="form">
        <div class="form-group dropdown">
            <label for="question">Question</label>
            <select  id="question" class="drop" name="question">
                @foreach($questions as $question)

                    <option value="{{$question->question}}">{{$question->question}}</option>

                @endforeach
            </select>
        </div>

在我的控制器中我有以下代码

$question = Question::whereQuestion(Input::get('question'))->first();

$n = $question->id;

他们给我一个错误$ n = $ question - &gt; id告诉我试图获取非对象的属性

1 个答案:

答案 0 :(得分:2)

不是将问题文本用作值并在之后查询id,为什么不从头开始将id设置为值?

<select  id="question" class="drop" name="question">
    @foreach($questions as $question)
        <option value="{{$question->id}}">{{$question->question}}</option>
    @endforeach
</select>

然后你可以做Input::get('question')并且你拥有所选问题的ID。如果你想获得完整的模型:

$questionId = Input::get('question');
$question = Question::find($questionId);