在表单,seletbox中获取选定的值

时间:2014-11-28 13:46:19

标签: php laravel laravel-4 laravel-3

我遇到了问题我无法解决,请帮助我。所以我有我的表格:

{{ Form::open(array('url'=>'/administration/student/addMarks','method' => 'post')) }}
         @foreach($aObjectsInGroupe as $object)
             {{ Form::hidden('id_object[]',$object->id)   }}
             {{ Form::label($object->name) }}
             {{ Form::select('note[]', $aMarks, null, array('class'=>'form-control')) }}
             <br />
         @endforeach
            {{ Form::hidden('id',$aOneStudent['id']) }}
            {{ Form::submit('Add mark',array('class'=>'btn btn-primary')) }}
{{ Form::close() }}

在我的StudentController中,我有一个从student_id和object_id获取标记的方法:

public function getMarkByStudentAndObject($nIdStudent, $nIdObject){
    $aMark = \Mark::where('student_id', '=', $nIdStudent)
                ->and('object_id', $nIdObject)
                ->get()
                ->toArray();
}

$ aMarsks它是一张桌子:

$aMarks = array(
        '0'=>'0',
        '1'=>'1',
        '2'=>'2',
        '3'=>'3',
        '4'=>'4',
        '5'=>'5',
        '6'=>'6',
        '7'=>'7',
        '8'=>'8',
        '9'=>'9',
        '10'=>'10',
    );

可以在以下方法中调用方法getMarkByStudentAndObject:

{{ Form::select('note[]', $aMarks, null, array('class'=>'form-control')) }}

获取所选值? 请帮帮我。 Thx提前。

3 个答案:

答案 0 :(得分:0)

也许你需要这样做:

<select name="note[]" class="form-control">
    @foreach($aMarks as $key => $value)
        <option value="{{ $key }}">{{ $value }}</option>
    @endforeach
</select>

你还应该检查你的Eloquent查询,而不是 - &gt;并使用另一个 - &gt; where

答案 1 :(得分:0)

尝试查询构建器的lists()功能

\Mark::where('student_id', '=', $nIdStudent)
            ->and('object_id', $nIdObject)
            ->lists('column_1', 'column_2');

然后,您将column_1的值作为数组的键,将column_2作为值。

http://laravel.com/docs/4.2/queries#selects

答案 2 :(得分:0)

您应该可以直接从Form::select拨打此电话。致电

Mark::getMarkByStudentAndObject($aOneStudent['id'], $object->id)->note

会为您提供Mark对象,然后您需要获取将值存储在Mark对象中的注释列。导致这样的电话:

{{
    Form::select(
        'note[]',
        $aMarks, 
        Mark::getMarkByStudentAndObject(
            $aOneStudent['id'], 
            $object->id
        )->note, array('class'=>'form-control')
    )
}}

目前我无法验证这是否有效,因为我无法测试它,但它应该可以正常工作,因为Blade只是PHP调用的包装器。