laravel 5 where()不工作

时间:2015-10-29 18:34:58

标签: php laravel-5

我有两个表,类别和子类别,子类别中的每个项目都属于外键“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

1 个答案:

答案 0 :(得分:1)

根据要求,您需要返回包含类别变量

的视图
 return view('view.name',compact('categories'); 

然后

  {{dd($categories)}} 

 <? print_r($categories); ?>

在您的视图中,它将输出数据。您可以通过

访问特定值
 @foreach($categories as $category) 
    {{$category->name}} 
 @endforeach 

假设您正在使用刀片,并且您的类别集合中有名称值。