您好,我有两种模型,一种用于提问,另一种用于答案 我需要从问题中获取所有信息 并从答案 然后在下方显示每个问题和答案
问题在于它们在两个不同的表中,因此您必须将每个表存储在一个变量中 现在你必须变 当您尝试通过每个循环显示它们时,它们将重复 我需要将两个变量合并为一个的方法 或在两个变量之间为每个循环做一个 我正在使用laravel
控制器
public function answerdquestions()
{
$Q = question::all();
$A = answer::all();
return view('guest.questions.answerd',compact('Q') , compact('A'));
}
查看
extends('layouts.guest')
@section('questions')
@if(count($Q) == null)
<h1>no Answerd questions yet</h1>
@else
@foreach($Q as $question)
@if($question->answerd == 1)
@foreach($A as $answer)
<br>
<div class="card" style="background: linear-gradient(to right, rgb(0, 0,
0), rgb(67, 67, 67)); color:white;">
<center><h3>{{$question->question}}</h3></center></div>
<br>
<div class="card">
<center><h3>{{$answer->answer}}</h3></center>
</div>
@endforeach
@elseif($Q->answerd == 0)
@endif
@endforeach
@endif
@endsection
答案 0 :(得分:0)
问题和答案之间是否存在1:1关系,并且它们的顺序相同?在这种情况下,您应该使用toArray()(检查here)将数组中的集合转换为数组,然后使用foreach按键和值循环数组。所以你有
@foreach($ Q as $ key => $ question)
然后您将使用以下方法得到答案:
$ A [$ key]-> answer
但是最好使用数字标识符表示问题和答案,然后通过使用问题-> id并使用它来获取答案来检索ID。
答案 1 :(得分:0)
我已经尝试了各种方法来成功建立1:1关系,但对我却没有用,所以我通过在答案表的迁移中添加一列来手动创建它 Question_ID 然后我进入了已经提交了问题ID的答案提交表单,并添加了一个带有hide类的输入,并将其值设置为$ question-> id
然后我只用键复制了您的soloution循环,就很好了
管理商店功能
public function store_answer(Request $request , $id)
{
$this->validate($request,[
'answer'=>'required',
]);
$answer = new answer;
$answer->answer = $request->input('answer');
$answer->question_id = $request->input('question_id');
$answer->save();
return view('admin.questions.plus1', ['id' => $id]);
}
管理员提交表格
@extends('layouts.admin')
@section('content')
<div>
<h1>{{$question->question}}</h1>
</div>
<div>
{!! Form::model($question,['method' => 'POST','action'=>['AdminQuestionsController@store_answer','id'=>$question->id,]]) !!}
<div class="form-group{{ $errors->has('answer') ? ' has-error' : ''}}">
{{Form::label('Answer', 'Answer')}}
{{Form::text('answer', '', ['class' => 'form-control required' , 'placeholder' => 'Enter your answer'])}}
</div>
{{Form::submit('submit',['class' => 'btn btn-primary'])}}
<div class="form-group">
{{Form::text('question_id', $question->id, ['class' => 'hide'])}}
</div>
</div>
{!! Form::close() !!}
@endsection
访客视图
@extends('layouts.guest')
@section('questions')
@if(count($Q) == null)
<h1>no Answerd questions yet</h1>
@else
@foreach($Q as $key => $question)
@if($question->answerd == 1)
<br>
<div class="card" style="background: linear-gradient(to right, rgb(0, 0, 0), rgb(67, 67, 67)); color:white;">
<center><h3>{{$question->question}}</h3></center></div>
<br>
<div class="card">
<center><h3>{{$A[$key]->answer}}</h3></center>
</div>
@elseif($Q->answerd == 0)
@endif
@endforeach
@endif
@endsection