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

这是我在这里的第一个问题,所以我希望我第一次尝试时不要搞砸任何事情。


好的,对于手头的主题:我正在尝试在我的控制器中执行一个函数,该函数允许我从模板中的数据库中获取一些数据,然后使用我传递给它的数据生成一个可下载的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>

提前感谢您的帮助!:)度过美好的一天


慕后森
浏览 64回答 2
2回答

九州编程

您可以只指定所需的字段:&nbsp;$tickets = DB::table('tickets')&nbsp; &nbsp; ->select('tickets.id as id', 'tickets.name as name', '...')&nbsp; &nbsp; -> join('detalle_tickets', 'tickets.detalle_ticket_id', '=', 'detalle_tickets.id')&nbsp; &nbsp; -> join('users', 'detalle_tickets.user_id', '=', 'users.id')&nbsp; &nbsp; -> join('areas', 'detalle_tickets.area_id', '=', 'areas.id')&nbsp; &nbsp; -> where('tickets.estado' ,'=', $categoria)&nbsp;&nbsp; &nbsp; -> whereBetween('tickets.created_at', [$fecha1, $fecha2])&nbsp;&nbsp; &nbsp; -> get();若要获取详细信息,请使用 xdebug 或“写入”来查看变量中的内容。dd($tickets);

富国沪深

所以,似乎我需要的只是别名:public function descargarPDF(Request $request)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; $fecha1 = $request->get('fecha1');&nbsp; &nbsp; &nbsp; &nbsp; $fecha2 = $request->get('fecha2');&nbsp; &nbsp; &nbsp; &nbsp; $categoria = $request->get('categoria');&nbsp; &nbsp; &nbsp; &nbsp; $tickets = DB::table('tickets')&nbsp; &nbsp; &nbsp; &nbsp; -> join('detalle_tickets', 'tickets.detalle_ticket_id', '=', 'detalle_tickets.id')&nbsp; &nbsp; &nbsp; &nbsp; -> join('users', 'detalle_tickets.user_id', '=', 'users.id')&nbsp; &nbsp; &nbsp; &nbsp; -> join('areas', 'detalle_tickets.area_id', '=', 'areas.id')&nbsp; &nbsp; &nbsp; &nbsp; -> select ('tickets.id as id_ticket',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'users.name as nombre',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'users.email as email',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'users.empresa as empresa',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'areas.nombre as requerimiento',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'tickets.estado as estado')&nbsp; &nbsp; &nbsp; &nbsp; -> where('tickets.estado' ,'=', $categoria)&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; -> whereBetween('tickets.created_at', [$fecha1, $fecha2])&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; -> get();&nbsp; &nbsp; &nbsp; &nbsp; $pdf = PDF::loadView('/admin/pdf', compact('tickets'));&nbsp; &nbsp; &nbsp; &nbsp; return $pdf->download('tickets.pdf');&nbsp; &nbsp; }为费利佩在评论中解决这个问题而欢呼!
打开App,查看更多内容
随时随地看视频慕课网APP