我刚开始与Laravel合作,并认为它是一个非常好的框架。 但有很多东西要学习,我可以大多找到用户指南中的所有内容,但本部分除外:Laravel简化与关系的数据库查询
我试图从我的数据库中获取项目,它们使用与其他表格相关的类别ID排序item_catagories在这个表中存储: ID 名 父
在我的网站我用的是类,而不是ID名称的网址。
http://example.com/catagory/subcatagory
当subcatagory有一个值我想搜索相关的项目。 我现在有这样的:
if($subcategory){
$foo = ItemCategories::where(['group' => $category, 'name'=> $subcategory])
->get()[0]->id;
$data['products'] = Items::where('category_id', $foo)->get();
}
但必须有一个更简单的方式来获得相同的结果。
我希望有人能帮助我明白,我怎么可以做的更好
编辑
我忘了补充的关系码:
该项目类:
public function categorie(){
return $this->hasOne('App\ItemCategories');
}
分类类型:
public function items(){
return $this->belongsTo('App\Items');
}
谢谢,但我怎么能得到这个修正: 列未找到:1054未知列'items.item_category_id'我n'where子句'我有专栏catagory_id –
可能的项目是一个集合,所以集合没有“category_id”属性来直接从关系中访问。 –
没有Laravel使它item_category_id,但我在我的表catagory_id。 我想要一个特定类别的所有物品,并且物品有一个类别ID。所以是否有可能做类似Item :: all() - 与(catagory,1) 但代替名称为“Test”的名称是表1中的id 1 –