Eloquent 所有和自定义 属性
Eloquent all and custom property
比方说,我有一个订单模型和一个查询所有订单的端点。
现在是这样的:
public function findAll(Request $request, Response $response, $args)
{
return Order::all()->toJson(JSON_PRETTY_PRINT);
}
但是,我想将自定义属性添加到 json 响应中。
我的订单是这样的:
protected $fillable = [
'productIds',
'fullname',
'phone',
'location'
];
我想添加一个'names'和一个'totalPrice' 属性,它们不在数据库中,它们是通过getProductNameList()和getSumPrice()方法计算的.这怎么可能? :)
您可以使用 json 响应,这样您就可以传递自定义数组
public function findAll(Request $request, Response $response, $args)
{
$order= Order::all();
return response()->json([
'order' => $order,
'names' => 'CA',
'totalPrice'=>150
]);
}
根据你的问题,你使用不同的方法来计算 getProductNameList()
和 getSumPrice()
。在这两种方法中你都可以 return $value 和方法响应你可以将它传递给这个数组
更多参考:
https://laravel.com/docs/5.5/responses#json-responses
您可以尝试使用 $append
模型属性直接从模型添加数据,如下所示:
Class Order extends Model
{
protected $append = ['attribute_name'];
public function getAttributeName() {
$dataToReturn = [];
return ($dataToReturn);
}
}
文档在这里:https://laravel.com/docs/5.4/eloquent-serialization#appending-values-to-json
比方说,我有一个订单模型和一个查询所有订单的端点。
现在是这样的:
public function findAll(Request $request, Response $response, $args)
{
return Order::all()->toJson(JSON_PRETTY_PRINT);
}
但是,我想将自定义属性添加到 json 响应中。
我的订单是这样的:
protected $fillable = [
'productIds',
'fullname',
'phone',
'location'
];
我想添加一个'names'和一个'totalPrice' 属性,它们不在数据库中,它们是通过getProductNameList()和getSumPrice()方法计算的.这怎么可能? :)
您可以使用 json 响应,这样您就可以传递自定义数组
public function findAll(Request $request, Response $response, $args)
{
$order= Order::all();
return response()->json([
'order' => $order,
'names' => 'CA',
'totalPrice'=>150
]);
}
根据你的问题,你使用不同的方法来计算 getProductNameList()
和 getSumPrice()
。在这两种方法中你都可以 return $value 和方法响应你可以将它传递给这个数组
更多参考:
https://laravel.com/docs/5.5/responses#json-responses
您可以尝试使用 $append
模型属性直接从模型添加数据,如下所示:
Class Order extends Model
{
protected $append = ['attribute_name'];
public function getAttributeName() {
$dataToReturn = [];
return ($dataToReturn);
}
}
文档在这里:https://laravel.com/docs/5.4/eloquent-serialization#appending-values-to-json