mysql - 如何使用 laravel 在 RESTful API 中获取具有多个外键的嵌套 JSON

标签 mysql database laravel

你好,我正在尝试制作一个 RESTful API,我的数据库中有这个表,我想要一个像这样的嵌套路由

localhost/foodGroup/{id}/portions/{id}/foods

我希望它返回一个 JSON,其中包含我拥有的具有相同部分和相同 foodGroup 的所有食物:这是我的数据库:

foodGroup
    id - integer (primary key)
    name - string

portions
    id - integer (primary key)
    name - integer

foods
    id - integer (primary key)
    name - string
    foodGroup_id - integer (foreign key)
    portion_id - integer (foreign key)

这些是我的模型

class Food extends Model
{
    public function food_group(){
        return $this->belongsTo('App\FoodGroup');
    }

    public function portion(){
        return $this->belongsTo('App\Portion');
    }
}

class FoodGroup extends Model
{
    public function foods(){
        return $this->hasMany('App\Food');
    }
}

class FoodGroup extends Model
{
    public function foods(){
        return $this->hasMany('App\Food');
    }
}

最佳答案

Route::get('foodGroup/{id}/portions/{id}/foods',function($foodGroup, $portion){
    return Food::where([
      'foodGroup_id',$foodGroup,
      'portion_id',$portion
    ])->get();
}

您还可以使用 Route-Model Binding如果您想访问 foodGroupportion 模型而不仅仅是 ID

关于mysql - 如何使用 laravel 在 RESTful API 中获取具有多个外键的嵌套 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35712561/

相关文章:

php - SQL查询使用不同的数组数据多次显示相同的记录

c# - 如何创建主数据库?

php - Laravel 畸形字符 UTF-8

php - Laravel CRUD 删除不适用于外键

mysql - 如何在 MySQL Insert 语句中添加 where 子句?

mysql - Doctrine 2 : query using NativeQuery and ResultSetMapping

php - PDO exec 不工作,数据库仍然是空的

JavaScript 确认取消在 Laravel 表单上不起作用

php - 过滤购物网站的搜索结果

database - Codeigniter PDO 集成