2016-02-25 42 views
3

我在这里有我的查询这个问题。获取数组中对象的编号,但不是对象本身。 - Laravel 5.2

在我的getIndex方法中,我列出了一个表中的对象数组,然后在我的postIndex中,当我试图发布它时,事实证明我发布了该数组中的对象的数字,但而不是对象本身。为什么会发生这种情况?

public function getIndex() { 

    $user = Auth::user(); 

    return view('educator.account.account',[ 
     'user' => $user, 
     'class'=> ClassSubject::where('teacher_id','=',$user->id)()->lists('class_id'), 
     'subject'=> ClassSubject::where('teacher_id','=',$user->id)->lists('subject_id'), 
    ]); 
} 

public function postIndex(Request $request) { 
    ClassSubject::where([ 
     ['subject_id','=',$request->input('subject')], 
     ['class_id','=',$request->input('class')] 
    ])->get(); 

形式:

<div class="panel panel-default"> 
     <div class=" panel-heading" id="admin-heading"> Добре дошли!</div> 
     <div class="panel-body"> 
      <br> 
      {!! Form::open(['action' => 'Educator\[email protected]', 'class' => 'form form-vertical' ]) !!} 
       <div class="form-group col-md-6"> 
       <div class="col-md-4">{!! Form::label('class','Избери клас:') !!}</div> 
        <div class="col-md-6">{!! Form::select('class', $class, null, ['class'=>'form-control']) !!}</div> 
       </div> 
      <div class="form-group col-md-6"> 
       <div class="col-md-5">{!! Form::label('subject','Избери предмет:') !!}</div> 
       <div class="col-md-6">{!! Form::select('subject', $subject, null, ['class'=>'form-control']) !!}</div> 
      </div> 
      <div align="center"> 
       <br> 
       <br> 
       {!! Form::submit('Избери', ['class' => 'btn btn-default']) !!} 
      </div> 
      {!! Form::close() !!} 
     </div> 
    </div> 
+0

你能否给我们提交表单的代码? –

+0

完成,更新。 –

+0

所以你的问题是,当你提交表单时,你会得到数组的索引ID而不是ClassSubject行的ID? –

回答

2

这可能在getIndex(为你工作):

return view('educator.account.account', [ 
    'user' => $user, 
    'class'=> ClassSubject::lists('class_id', 'YOUR_HUMAN_READABLE_FIELD')->where('teacher_id', $user->id)->get(), 
    'subject'=> ClassSubject::lists('subject_id', 'YOUR_HUMAN_READABLE_FIELD')->where('teacher_id', $user->id)->get()', 
]); 

让我知道它的工作与否。

编辑

的问题已得到修复,这并获得成功:

DB::table('class_subject')->where('teacher_id', $user->id)->pluck('id', 'name'); 
+0

现在我没有得到我的信息在下拉的所有 –

+0

对不起,我忘了添加' - > get()'。已更新我的回答 –

+0

** Illuminate \ Support \ Collection :: get()**缺少参数1 –

0

如你只传递一个参数,您将收到设置为你列的值的数组传递给lists方法。

Form::select使用数组的keys作为选项的值,使用values作为选项的显示名称。

因此,使用lists方法如下。

ClassSubject::lists('displayName', 'value') 

在laravel 5.2列出了方法已被弃用,考虑使用pluck方法来代替,其具有相同的签名。

相关问题