当前位置: 首页 > 知识库问答 >
问题:

Laravel 5.4-基于用户请求的订单数据

时浩波
2023-03-14

我想从一个表中创建一个报告,该表的数据可以根据用户的请求进行排序,我尝试如下

suppliers.blade.php

<form id="print" method="POST" action="/admin/suppliers/report" target="blank">
{{ csrf_field() }}
<div class="input-field">
    <select name="orderBy">
        <option value="" disabled selected>Order by</option>
        <option value="'id', 'asc'">Id (Asc)</option>
        <option value="'id', 'desc'">Id (Desc)</option>
        <option value="'name', 'asc'">Name (A - Z)</option>
        <option value="'name', 'desc'">Name (Z - A)</option>
        <option value="'updated_at', 'asc'">Date (Asc)</option>
        <option value="'updated_at', 'desc'">Date (Desc)</option>
    </select>
    <label>Order by</label>
 </div>
<button type="submit" class="btn-flat">print</button>

路线

Route::post('/admin/suppliers/report', 'ReportController@supplier');

报告控制器。php

public function supplier(Request $request)
{
$orderBy = request('orderBy');

$suppliers = Supplier::orderBy($orderBy)->get();

$pdf = PDF::loadView('report.suppliers', compact('suppliers'));

return $suppliers;
// return $pdf->setPaper('a4')->stream('suppliers.pdf');
}

我尝试按Id(Desc)和名称(Z-A)排序,但结果总是按Id(Asc)排序,如下所示

[
{
    "id": 1,
    "name": "Supplier 1",
    "phone": "1111111111",
    "address": "Jl. 1",
    "created_at": "2018-01-27 11:21:35",
    "updated_at": "2018-01-27 11:21:35"
},
{
    "id": 2,
    "name": "Supplier 2",
    "phone": "2222222222",
    "address": "Jl. 2",
    "created_at": "2018-01-27 11:21:56",
    "updated_at": "2018-01-27 11:21:56"
},
{
    "id": 3,
    "name": "Supplier 3",
    "phone": "3333333333",
    "address": "Jl. 3",
    "created_at": "2018-01-27 11:22:24",
    "updated_at": "2018-01-27 11:22:24"
}
]

共有1个答案

姜森
2023-03-14
$orderBy = request('orderBy');

结果仍然是“'id'、'desc'”

你要做的是

“id”、“asc”中删除成为“id、asc”

然后,在ReportController

$orderBy = request('orderBy');
$orderBy = explode(',', $orderBy);
$suppliers = Supplier::orderBy($orderBy[0], $orderBy[1])->get();
 类似资料:
  • 说明 用户根据需要发起叫车请求,在发起请求之前必须先通过获取订单id接口获得order id 预约叫车,最多预约3天内(自然日)的用车,只能预约距离出发时间至少半个小时以上的用车 请求地址 /v1/order/Create/request 支持格式 Json或普通form HTTP请求方式 Post 是否需要登录 是 关于登录授权,参见 如何登录授权 访问授权限制 暂无 请求参数 名称 类型 必选

  • 在泽西1. x中,您可以使用对表单数据进行请求过滤,但我在泽西2. x中没有看到明显的等效项。我已经实现了接口,它让我可以访问,但是从那里如何获取表单数据呢? 泽西1. x示例: 球衣2。x示例:

  • 问题内容: 考虑以下MySQL查询: …如何保证行集按照提供给子句的值的确切顺序排好序?我猜想如果不给它一个子句就无法保证,对吗? PS .: 子句 的值将是由PHP以以下方式(使用Zend Framework的select语句)传递给查询的任意数据的数组: 问题答案: 在ORDER BY中使用CASE语句: 根据需要分配任意值。我通常不包括在内,因为如果未定义则暗含它,但我想明确表示,以备不时之

  • 我正在开发的应用程序已经具有Spring Security来处理基于表单的身份验证。现在,如果在某个请求参数中发现了令牌,则需要通过外部服务以编程方式登录用户。 换句话说,如果存在一个特定的请求参数,比如“token”,它需要用该令牌调用一个外部服务来验证它是否是一个有效的令牌。如果是,则用户将登录。 我不知道如何以及在哪里“触发”或“挂钩”Spring Security来检查这个参数并进行验证,

  • 我是Scala的新手。 我在用加特林做压力测试。 我能够进行一个Gatling测试,向WS发出请求,我将JSON响应保存在session变量中。响应是一个JSON数组,其中包含指向我的后端提供的图像的多个链接。 具体来说,第一个请求检索地图中的点,每个点都分配了一个图像,必须通过访问第一个WS响应提供的链接来获取每个图像。 我有以下代码: 第一个WS的JSON响应示例: 第一个请求工作正常,我不使

  • 我的jsp页面可以通过以下方式访问bean: 如果我将作用域更改为“request”,tomcat会抛出一个异常:javax。servlet。ServletException:java。lang.InstanceException:在范围内找不到bean myBean 但我通过从servlet转发来访问jsp页面,如下所示: 我认为上述转发会导致MyJsp.jsp继承原始servlet的请求对象,