我如何 return 在 Laravel 5.2 查询中自定义文本?

How i return custom text in Laravel 5.2 query?

我有两个 table:

qr_details table:

id   qrcode_id  prize_id   created_at           updated_at
12   1          12         2017-10-06 19:53:10  0000-00-00 00:00:0

二维码table:

id   correspond_code    qrcode_note    created_at             updated_at

1    plgt73g            X Batch        2017-10-06 21:55:11    2017-09-28 08:57:53   
2    gs35dn4            Y Batch        2017-10-06 21:55:22    2017-10-04 04:38:50
3    df324f3            X Batch        2017-10-06 21:55:36    2017-10-06 13:29:11

现在我想如果我在 qr_details table qrcode_id 列中得到 qrcodes table id 那么它将显示文本 Yes 除了它会显示 No。我怎么写这个?提前致谢。

到目前为止我已经尝试过:

$drawOr = DB::table('qr_details')
        ->leftJoin('qrcodes', 'qr_details.qrcode_id', '=', 'qrcodes.id')
        ->where('qrcode_id','=', $id)
        ->get();
        dd($drawOr);

显示错误。

select() 中使用 DB::raw,例如

$drawOr = DB::table('qr_details')
        ->select('qr_details.*',
          DB::raw("(CASE WHEN qrcodes.id IS NOT NULL THEN 'Yes' ELSE 'No' END) AS somealias"))
        ->leftJoin('qrcodes', 'qr_details.qrcode_id', '=', 'qrcodes.id')
        ->where('qrcode_id','=', $id)
        ->get();

这个很简单。您可以在控制器中使用此代码:-

$drawOr = DB::table('qrcodes')
    ->get();

foreach($drawOr as $key => $draw){
    $getqrDeatilCount = DB::table('qr_details')->where('qrcode_id',$draw->id)->count();
    if($getqrDeatilCount > 0){
        $drawOr[$key]->status = "Yes";
    }else{
        $drawOr[$key]->status = "No";
   }
}
echo "<pre>"; print_r($drawOr);

现在我已经创建了新密钥,即 status,其中包含 'yes' 中的值或没有 然后你可以根据你的要求在 blade 文件中使用.. 希望对您有所帮助:)