一般来说,ORM新手,寻求指导。
我有3张桌子,我试图从我的问题表格中获取ID列表,该表格属于我的调查表(来自我的调查控制器)。我可以使用ORM和pluck,但只返回第一个ID。知道我如何获得与以下查询相对应的所有问题ID?
当我在视图页面的forelse中显示页面时,它只会反复显示第一个ID。任何想法?
$ball = $survey->questions->pluck('id');
用于提供
$chart = Charts::database($answer->whereIn('question_id', $ball)->get(), 'bar', 'material')
->title("")
->colors(['#F5A623', '#A9D8D3'])
->elementLabel("Answers")
->dimensions(0, 250)
->groupBy('answer');
调查控制器
class Survey extends Model
{
protected $fillable = ['title', 'description', 'user_id'];
protected $dates = ['deleted_at'];
protected $table = 'surveys';
public function questions(){
return $this->hasMany(Question::class);
}
public function user(){
return $this->belongsTo(User::class);
}
public function answers(){
return $this->hasMany(Answer::class);
}
}
回答控制器
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class answer extends Model
{
protected $fillable = [
'answer'
];
protected $table = 'answers';
public function survey(){
return $this->belongsTo(Survey::class);
}
public function question(){
return $this->belongsTo(Question::class);
}
}
问题控制器
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Question extends Model
{
protected $casts = [
'option_name' => 'array',
];
protected $fillable =['title', 'question_type', 'option_name', 'user_id'];
public function survey(){
return $this->belongsTo(Survey::class);
}
public function user(){
return $this->belongsTo(User::class);
}
public function answers(){
return $this->hasMany(Answer::class);
}
protected $table = 'questions';
}
答案 0 :(得分:0)
由于我不完全确定问题并且代码不完整,所以这里有一些想法。
$balls = $survey->questions()->pluck('id');
将创建一个集合
来自DB。->whereIn('question_id', $balls)->get()
。belongsTo(Question::class)
添加Answer
,以便$answer->question