Laravel雄辩地显示主题表中的行?

Laravel雄辩地显示主题表中的行?,laravel,Laravel,我有三个数据库表 类别id、名称 表categoryid上的子类别id、名称、类别id、外键类别id。 表子类别id上的subjectid、name、subcategory_id、foreign_key subcategory_id。 我想要一行包含以下内容- 主题\u id主题\u名称类别\u名称子类别\u id 如何做到这一点使用雄辩。如果方法是错误的。请建议一个好的方法来实现同样的 假设您有以下型号: //类别模型 类类别扩展\elount{ 受保护$table=类别; 公共功能子类别{

我有三个数据库表

类别id、名称 表categoryid上的子类别id、名称、类别id、外键类别id。 表子类别id上的subjectid、name、subcategory_id、foreign_key subcategory_id。 我想要一行包含以下内容-

主题\u id主题\u名称类别\u名称子类别\u id


如何做到这一点使用雄辩。如果方法是错误的。请建议一个好的方法来实现同样的

假设您有以下型号:

//类别模型 类类别扩展\elount{ 受保护$table=类别; 公共功能子类别{ $this->hasnomy'Subcategory','category_id'; } } //子类别模型 类子类别扩展\elount{ 受保护的$table=子类别; 公共职能范畴{ $this->belongsTo'Category'、'Category_id'; } 耻骨功能主体{ $this->有许多“主题”、“子类别_id”; } } //主题模式 类主题扩展\有说服力{ 受保护$table=主题; 公共功能子类别{ $this->belongsTo'Subcategory','Subcategory_id'; } } 您可以按如下方式在控制器中获取数据:

//对于id为1的主题 公共职能部门{ $subject=subject::with'subcategory.category'->findOrFail1; //主题标识=$subject->id //主题名称=$subject->name //子类别\u id=$subject->subcategory->id //类别名称=$subject->subcategory->category->name 返回arraysubject\u name=>$subject->name,category\u name=>$subject->subcategory->id,subcategory\u name=>$subject->subcategory->category->name; } //所有科目 公共职能部门{
$subjects=Subject::带有'subcategory.category'->all; $out=数组; foreach$subject作为$subject{ //每行 //主题标识=$subject->id //主题名称=$subject->name //子类别\u id=$subject->subcategory->id //类别名称=$subject->subcategory->category->name $out[]=arraysubject\u name=>$subject->name,category\u name=>$subject->subcategory->id,subcategory\u name=>$subject->subcategory->category->name; } 退回$out; } 为Laravel 5.1编辑 您的模型将以不同的方式定义。这里有一个例子。或遵循以下步骤:

//类别模型Laravel 5.1 使用Illumb\Database\Elount\Model; 类类别扩展模型{ 受保护$table=类别; 公共功能子类别{ $this->hasnomy'Subcategory','category_id'; } }
编辑:按照注释中的要求使用返回语句完成函数

您可以发布您拥有的代码吗?我现在无法在此发布大型代码,我正在使用它来显示子类别$subcategory=subcategory::with'category'->get;公共函数类别{return$this->belongsTo'App\category';}。原始版本基于Laravel4.2。我添加了一个部分来显示Laravel5.1$subject=subject::with'subcategory up.category'->findOrFail1中可能需要的更改;使用此命令,我在Builder.php第129行中获得错误ModelNotFoundException:没有模型[App\Subject]的查询结果。好的,这假设您已正确定义了模型,并且表中有数据。抛出ModelNotFoundException是因为如果findOrFail在主题表中找不到对应于id=1的条目,它应该这样做。如果您的主键不是id,那么您应该保护$primaryKey='subject_id';在您的模型中。$subjects=Subject::with'subcategory.category'->all;这里不是->全部,我只需要所有表中的几列。你能提供一个例子吗?谢谢,解决方案可行。但我只想查询几列。这取决于你想要哪几列。您可以指定这样的筛选条件:$subject=subject::with'subcategory up.category'->where'name','like','math'->get;或者如果您知道要检索的ID:$subject=subject::with'subcategory up.category'->find[1,3,5,7];