Laravel雄辩的ORM替代
问题描述:
ORM通用新手,寻找指导。Laravel雄辩的ORM替代
我有3个表格,我试图从属于我的调查表(从我的调查控制器内)的问题表中获取ID的列表。我可以使用ORM和采摘,但只返回第一个ID。任何想法如何我会去得到所有的问题ID对应于下面的查询?
当我在视图页面上显示页面时,它只会显示第一个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';
}
答
由于我不完全确定问题,代码不完整,所以有一些想法。
-
$balls = $survey->questions()->pluck('id');
将从DB创建集合 。当处理ID的集合/数组时,使用->whereIn('question_id', $balls)->get()
。 - 您可以添加一个
belongsTo(Question::class)
您Answer
允许在你的数据库$answer->question
喜,有你'$ survey'的记录很多问题? – Maraboc
该错误似乎与我的采摘逻辑。它在我的图表数据库查询中只返回ID的第一个实例。 – MTL
是的,这就是我所说的,可能与您一起工作的“调查”在数据库中只有一个问题! – Maraboc