Laravel Eloquent ORM替代采摘

时间:2017-08-29 20:17:38

标签: laravel eloquent

一般来说,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';
}

1 个答案:

答案 0 :(得分:0)

由于我不完全确定问题并且代码不完整,所以这里有一些想法。

  • $balls = $survey->questions()->pluck('id');将创建一个集合 来自DB。
  • 处理ID /集合时使用->whereIn('question_id', $balls)->get()
  • 您可以向belongsTo(Question::class)添加Answer,以便$answer->question
相关问题