【发布时间】:2020-10-12 19:01:12
【问题描述】:
我有一个看起来像这样的膳食模型
class meals extends Model
{
use HasFactory;
protected $appends =
[
'image_full_path',
];
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'text','price','image_url','rating','discount','sub_catogry_id'
];
public function sub_catogry()
{
return $this->belongsTo('App\Models\sub_catogry');
}
public function order_meal_list()
{
return $this->hasMany(order_meal_list::class);
}
我有 Oreder_List_Model
class order_meal_list extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'quntity', 'price','order_id','meals_id'
];
public function meals()
{
return $this->belongsTo('App\Models\meals','meals_id');
}
public function order()
{
return $this->belongsTo('App\Models\order');
}
}
我有这样的订单模型
class order extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
"id",
'name','address','phone','dateTime','user_id','total_price','payment_mthod_id','order_status'
];
public function user()
{
return $this->belongsTo('App\Models\User');
}
public function meals_list()
{
return $this->HasMany('App\Models\order_meal_list',"order_id");
}
总结是我有订单,订单可能不止餐点,所以我制作了一个 order_meal_list 表来存储每个订单中的餐点列表,这些表现在有一个餐点 ID 和订单 ID
我想返回带有餐点列表的订单,并且在列表中的每个项目中我想使用餐点 ID 获取与其相关的餐点对象
我尝试与这些一起使用
$orders = order::with("meals_list")->where('user_id','=', $request['user_id'])->get();
但它只是将订单连同它的清单返回给我,而没有像这样的饭菜
[
[
{
"id": 11,
"name": "ali",
"address": "lap lap",
"phone": "105",
"dateTime": "02:50",
"total_price": "452.11356",
"toatal_discount": "82",
"user_id": "1",
"order_status": "1",
"payment_mthod_id": "0",
"created_at": "2020-10-04T12:27:55.000000Z",
"updated_at": "2020-10-11T09:02:16.000000Z",
"meals_list": [
{
"id": 11,
"meals_id": "1",
"order_id": "11",
"quntity": 3,
"price": "226.05678",
"created_at": "2020-10-04T12:27:55.000000Z",
"updated_at": "2020-10-04T12:27:55.000000Z"
},
{
"id": 12,
"meals_id": "1",
"order_id": "11",
"quntity": 3,
"price": "226.05678",
"created_at": "2020-10-04T12:27:55.000000Z",
"updated_at": "2020-10-04T12:27:55.000000Z"
}
]
},
我的问题是我想返回一个对我的 api 的响应,并且响应必须是一个 json,其中餐点列表对象中的餐点看起来像这样
[
{
"id": 11,
"name": "ali",
"address": "lap lap",
"phone": "105",
"dateTime": "02:50",
"total_price": "452.11356",
"toatal_discount": "82",
"user_id": "1",
"order_status": "1",
"payment_mthod_id": "0",
"created_at": "2020-10-04T12:27:55.000000Z",
"updated_at": "2020-10-11T09:02:16.000000Z",
"meals_list": [
{
"id": 11,
"meals_id": "1",
"order_id": "11",
"quntity": 3,
"price": "226.05678",
"created_at": "2020-10-04T12:27:55.000000Z",
"updated_at": "2020-10-04T12:27:55.000000Z"
},
{
"id": 12,
"meals_id": "1",
"order_id": "11",
"quntity": 3,
"price": "226.05678",
"created_at": "2020-10-04T12:27:55.000000Z",
"updated_at": "2020-10-04T12:27:55.000000Z"
"meal":[{
"id": 1,
"name": "Royal Casper",
"text": "Est qui ut in dolor aut perferendis exercitationem dolorem. Aut porro et nisi non
fugiat. Rerum non nisi ex officia cupiditate. Dolores ut quae ea.",
"price": "3890118.5463257",
"rating": 0.8,
"image_url": "3ea216eed15b143016c565c53ca22544.jpg",
"discount": 94,
"sub_catogry_id": "6",
"created_at": "2020-10-11T07:15:33.000000Z",
"updated_at": "2020-10-11T07:15:33.000000Z",
"image_full_path": "\/images\/3ea216eed15b143016c565c53ca22544.jpg",
"sub_catogry": {
"id": 6,
"name": "Prof. Spencer Kub I",
"catogry_id": "7",
"created_at": "2020-10-11T07:15:18.000000Z",
"updated_at": "2020-10-11T07:15:18.000000Z"
}]
}
]
},
【问题讨论】:
标签: php mysql sql laravel relational-database