Laravel 4.1中的多对多关系得到了相同的结果

时间:2014-06-15 13:09:58

标签: laravel-4 return-value table-relationships

请帮助我目前正在开展一个房地产项目,并且我在Laravel 4.1上有多对多的关系表

表类别

Table categories

表格服务

table services

table category_service

enter image description here

当我使用以下查询在PHPMyAdmin上测试时

SELECT C.category_name
FROM Categories AS C
LEFT JOIN category_service AS CS ON CS.category_id = C.id
LEFT JOIN Services S ON S.id = CS.service_id
WHERE S.id =1

当我将 S.id 更改为 2 时结果正常,但是在Laravel上,无论我更改其id = 2,结果都保持不变。 这是我的类别

class Category extends Eloquent {
    protected $fillable = ['category_name'];
    public $timestamps = false;
    public function services() {
        return $this->belongsToMany('Service','category_service');
    }
}

和我的服务

class Service extends  Eloquent {
    protected $fillable = ['service_types'];
    public $timestamps = false;
    public function categories() {
        return $this->belongsToMany('Category','category_service');
    }
}

和ServicesController

class ServicesController extends BaseController {
    public function getService($c) {

        //using raw query return the result unchanged
        $cat = DB::raw('
            SELECT C.category_name
            FROM Categories AS C
            LEFT JOIN category_service AS CS ON CS.category_id = C.id
            LEFT JOIN Services S ON S.id = CS.service_id
            WHERE S.id ='.$c
        );

        //using eloquent return the result unchanged
        $cat = Service::with('categories')->find($c);

        return View::make('members.cat')->with('cat',$cat);
    }
}

Expected result should be like this photo with S.id=1

预期结果应该像这张带有S.id = 1的照片

Expected result should be like this photo with S.id=2

预期结果应该像这张带有S.id = 1的照片

所以我对Laravel做错了什么?我显示结果相同S.id = 1虽然我给了S.id = 0,但是数据库中没有。

0 个答案:

没有答案