我有两个表,类别和子类别,子类别中的每个项目都属于外键“category_id”的类别。
我有两个模型,一个用于类别,一个用于子类别,另一个用于控制器。
我的分类模型:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Category extends Model
{
//
public function subcategories()
{
return $this->hasMany('\App\Subcategory');
}
}
子类别模型
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Subcategory extends Model
{
protected $fillable = [
'sub_category_name',
'category_id'
];
}
和CategoriesController
<?php
namespace App\Http\Controllers;
use App\Category;
use App\Subcategory;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class CategoriesController extends Controller
{
//return array of categories
public function categories ()
{
$categories = Category::where('category_name', '=', 'Construction Machines')->subcategories;
return $categories;
}
}
问题是当我做Category :: find() - &gt;子类别时,我得到了预期的结果。但当我使用where()时,它给了我Undefined属性:Illuminate \ Database \ Eloquent \ Builder :: $ subcategories error
答案 0 :(得分:1)
根据要求,您需要返回包含类别变量
的视图 return view('view.name',compact('categories');
然后
{{dd($categories)}}
或
<? print_r($categories); ?>
在您的视图中,它将输出数据。您可以通过
访问特定值 @foreach($categories as $category)
{{$category->name}}
@endforeach
假设您正在使用刀片,并且您的类别集合中有名称值。