这对某些人来说是一个简单的问题,但我似乎无法在线或在文档中找到答案(只有我不想要的变体)。
# Returns True if End-Of-File is reached
def EOF(f):
current_pos = f.tell()
file_size = os.fstat(f.fileno()).st_size
return current_pos >= file_size
类Question
对象可以选择包含多个Question
s 我已经设置了类,事情按预期运行。目前我使用:
Tag
这可以按预期工作,但不会急于加载。
要明确:$questions = Question::all();
给出了我期待的数组。没有关系问题。
由于新的要求,我将创建一个可能有数千个问题的视图,所以这个急切的加载是必须的。
我试图使用:
$question->tags
提供了错误消息:
Builder.php第2345行中的BadMethodCallException:调用未定义的方法Illuminate \ Database \ Query \ Builder :: all()
每个教程,或者我谷歌急切加载的方式,要么指定ID,要么是关于如何仅向父母展示子女的教程。
我简单地想要"所有人和他们的孩子"。
这一定很容易..有谁知道怎么做?
由于 瑞克
答案 0 :(得分:4)
您应该在模型中定义方法。据我所知,你将有一对多的关系。这将是
class Question extends Model
{
public function tags()
{
return $this->hasMany('App\Tag');
}
}
标记类
class Tag extends Model
{
public function question()
{
return $this->belongsTo('App\Question');
}
}
和控制器。而不是all()
使用get()
方法。
$questions = Question::with('tags')->get();
我在tags
模型中定义了Question
方法。 Question::with('tags')
应该调用它。相反,如果您要执行Question::with('tag')
,则应在tag
模型中定义Question
方法。
请注意 s
答案 1 :(得分:0)
我已将两个答案都标记为正确:建议的原始语法是正确的,并且提出的类名称问题是最后一个问题。 谢谢大家:
$questions = Question::with('tags')->get();