为了账号安全,请及时绑定邮箱和手机立即绑定

拉拉维尔雄辩家:我无法获得我想要的ID,而是从连接表中获得另一个ID

拉拉维尔雄辩家:我无法获得我想要的ID,而是从连接表中获得另一个ID

PHP
慕后森 2022-09-25 20:13:57
这是我在这里的第一个问题,所以我希望我第一次尝试时不要搞砸任何事情。好的,对于手头的主题:我正在尝试在我的控制器中执行一个函数,该函数允许我从模板中的数据库中获取一些数据,然后使用我传递给它的数据生成一个可下载的PDF文件。我设法做到了这一点,而且它工作得很好。错误的是,我正在使用一个数据库,其中我的所有标识符都命名为“id”,当我尝试访问我想要的标识符时,我从连接表中获取另一个标识符。显而易见的解决方案是更改标识符的名称,因此没有重复的名称,但由于一些外部因素,我无法做到这一点,至少目前是这样。这是编程无法做到的。所以,我想知道是否有一种方法可以在不更改数据库的情况下检索我想要的ID。这是我的函数:public function descargarPDF(Request $request)    {        $fecha1 = $request->get('fecha1');        $fecha2 = $request->get('fecha2');        $categoria = $request->get('categoria');        // These are filters I had to apply before fetching data to my PDF file, they work fine.        $tickets = DB::table('tickets')        -> join('detalle_tickets', 'tickets.detalle_ticket_id', '=', 'detalle_tickets.id')        -> join('users', 'detalle_tickets.user_id', '=', 'users.id')        -> join('areas', 'detalle_tickets.area_id', '=', 'areas.id')        -> where('tickets.estado' ,'=', $categoria)         -> whereBetween('tickets.created_at', [$fecha1, $fecha2])         -> get();        $pdf = PDF::loadView('/admin/pdf', compact('tickets'));        return $pdf->download('tickets.pdf');    }这是我的刀片模板:<!DOCTYPE html><html><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>PDF</title></head><body>    <table>        <thead>            <tr>                <th>Código</th>                <th>Nombre</th>                <th>Email</th>                <th>Empresa</th>                <th>Requerimiento</th>                <th>Estado</th>            </tr>        </thead>        <tbody>            @foreach($tickets as $value)            <tr>                <td>{{ $value->id }}</td>                <td>{{ $value->name }}</td>                <td>{{ $value->email }}</td>                <td>{{ $value->empresa }}</td>                <td>{{ $value->nombre }}</td>                <td>{{ $value->estado }}</td>            </tr>            @endforeach        </tbody>    </table></body></html>提前感谢您的帮助!:)度过美好的一天
查看完整描述

2 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

您可以只指定所需的字段:


 $tickets = DB::table('tickets')

    ->select('tickets.id as id', 'tickets.name as name', '...')

    -> join('detalle_tickets', 'tickets.detalle_ticket_id', '=', 'detalle_tickets.id')

    -> join('users', 'detalle_tickets.user_id', '=', 'users.id')

    -> join('areas', 'detalle_tickets.area_id', '=', 'areas.id')

    -> where('tickets.estado' ,'=', $categoria) 

    -> whereBetween('tickets.created_at', [$fecha1, $fecha2]) 

    -> get();

若要获取详细信息,请使用 xdebug 或“写入”来查看变量中的内容。dd($tickets);


查看完整回答
反对 回复 2022-09-25
?
富国沪深

TA贡献1790条经验 获得超9个赞

所以,似乎我需要的只是别名:


public function descargarPDF(Request $request)

    {

        $fecha1 = $request->get('fecha1');

        $fecha2 = $request->get('fecha2');

        $categoria = $request->get('categoria');

        $tickets = DB::table('tickets')

        -> join('detalle_tickets', 'tickets.detalle_ticket_id', '=', 'detalle_tickets.id')

        -> join('users', 'detalle_tickets.user_id', '=', 'users.id')

        -> join('areas', 'detalle_tickets.area_id', '=', 'areas.id')

        -> select ('tickets.id as id_ticket',

                   'users.name as nombre',

                   'users.email as email',

                   'users.empresa as empresa',

                   'areas.nombre as requerimiento',

                   'tickets.estado as estado')

        -> where('tickets.estado' ,'=', $categoria) 

        -> whereBetween('tickets.created_at', [$fecha1, $fecha2]) 

        -> get();

        $pdf = PDF::loadView('/admin/pdf', compact('tickets'));

        return $pdf->download('tickets.pdf');

    }

为费利佩在评论中解决这个问题而欢呼!


查看完整回答
反对 回复 2022-09-25
  • 2 回答
  • 0 关注
  • 63 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信