调用未定义的方法Illuminate \ Database \ Eloquent \ Collection

时间:2015-08-18 16:14:39

标签: laravel-5 eloquent

我有这两个模型:

class Opcion extends Model
{

    protected $table = 'opciones';

    public function pregunta(){ 
        return $this->belongsTo('Send\Pregunta', 'pregunta_id');
    }
}

class Pregunta extends Model
{

    protected $table = 'preguntas';

    public function opciones(){ 
        return $this->hasMany('Send\Opcion', 'pregunta_id');
    }
}

然后在我的控制器中:

 class GraficosController extends Controller
{
    public function getIndex(){
        $preguntas= \Send\Pregunta::where('encuesta_id','=',1)->get();
        $opciones= $preguntas->opciones();


        return view('graficos.grafico')->with(['preguntas'=>$preguntas,'opciones'=>$opciones]);
    }
}

我得到这个错误:调用未定义的方法Illuminate \ Database \ Eloquent \ Collection :: opciones(),我试图获得所有" opciones"与" preguntas"

相关

1 个答案:

答案 0 :(得分:1)

您收到此错误是因为Dim o Set o = CreateObject("MSXML2.XMLHTTP") o.open "GET", "http://myserver:myport/Request", False 方法返回get()对象,您可以将其视为一组结果。因此,查询返回的第一个元素是Collection,您可以执行此操作:

$preguntas[0]

但是,如果您知道自己只是从查询中获得一个结果,那么您应该使用$opciones= $preguntas[0]->opciones(); 方法而不是first()first()将返回查询中第一个结果的实例。

get()