我有这两个模型:
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"
相关答案 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()