获取数组中对象的编号,但不获取对象本身。 - Laravel 5.2
Posted
技术标签:
【中文标题】获取数组中对象的编号,但不获取对象本身。 - Laravel 5.2【英文标题】:Getting the number of an object in array, but not the object itself. - Laravel 5.2 【发布时间】:2016-06-08 08:28:57 【问题描述】:我的查询遇到了这个问题。
在我的 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\AccountController@postIndex', '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>
【问题讨论】:
您能给我们您提交的表单的代码吗? 所以你的问题是当你提交表单时你会得到数组的索引id而不是ClassSubject行的ID? 你使用的是哪个 Laravel 版本? @chanafdo 问题标题说 laravel 5.2 @Dees040 我的错,错过了那部分:( 【参考方案1】:这可能在 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');
【讨论】:
现在我根本没有在下拉列表中获取我的信息 对不起,我忘了添加 '->get()'。我已经更新了我的答案。 缺少 Illuminate\Support\Collection::get() 的参数 1 @YoannaMurdjeva 也许你可以试试this 您可以添加我的 Skype(与此处的用户名相同),我会帮助您修复错误,因为它应该是一个“简单”的问题。【参考方案2】:当您只传递一个参数时,您将收到一个数组,其值设置为您要传递给lists
方法的列。
但是Form::select
使用数组的keys
作为选项的值,使用values
作为选项的显示名称。
所以使用lists
方法如下。
ClassSubject::lists('displayName', 'value')
在 laravel 5.2 中,列表方法已被弃用,并考虑使用具有相同签名的 pluck
方法。
【讨论】:
以上是关于获取数组中对象的编号,但不获取对象本身。 - Laravel 5.2的主要内容,如果未能解决你的问题,请参考以下文章
如何从 JSON 数组中的 JSON 对象中的单个值获取数据?