Php 如何在Laravel 5.2查询中返回自定义文本?

Php 如何在Laravel 5.2查询中返回自定义文本?,php,mysql,laravel,laravel-5.2,Php,Mysql,Laravel,Laravel 5.2,我有两张桌子: qr\U明细表: id qrcode_id prize_id created_at updated_at 12 1 12 2017-10-06 19:53:10 0000-00-00 00:00:0 id correspond_code qrcode_note created_at updated_at 1 plgt73g X Batch

我有两张桌子:

qr\U明细表:

id   qrcode_id  prize_id   created_at           updated_at
12   1          12         2017-10-06 19:53:10  0000-00-00 00:00:0
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
qrcodes表:

id   qrcode_id  prize_id   created_at           updated_at
12   1          12         2017-10-06 19:53:10  0000-00-00 00:00:0
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\u详细信息
table
qr\u id
列中获得
qrcodes
id
,那么它将显示文本
Yes
,而不是显示
No
。我是怎么写的?提前谢谢

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

$drawOr = DB::table('qr_details')
        ->leftJoin('qrcodes', 'qr_details.qrcode_id', '=', 'qrcodes.id')
        ->where('qrcode_id','=', $id)
        ->get();
        dd($drawOr);
它显示一个错误。

select()中使用

$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);
$drawOr=DB::table('qrcodes')
->get();
foreach($draw或作为$key=>$draw){
$getqrDeatilCount=DB::table('qr_details')->where('qrcode_id',$draw->id)->count();
如果($getqrDeatilCount>0){
$drawOr[$key]->status=“是”;
}否则{
$drawOr[$key]->status=“否”;
}
}
回声“;打印(提款);
现在,我已经创建了一个新的键,即status,它包含“yes”或“no”中的值 之后,您可以根据需要在刀片文件中使用。。
希望有帮助:)

您是否遇到了完整性约束错误?为什么不使用雄辩的关系?我真的很难理解这个问题。大概
qr\u details
是一个包含一行
qrcodes
详细信息的表?
id
怎么会不存在呢?@apokryfos如果有人画二维码,那么将填写二维码详情表。这就是为什么qr_明细表只有一行。另一个还没有画出来。@GauravGupta我得到了这个错误。我想这是另一个方向。qrcodes表是基础表,
QRU详细信息
是相关表,OP希望查看
qrcode
QRU详细信息
表中是否有条目不需要任何条目。当任何人绘制
qrcodes
表的qrcode时,它将填充。
->其中('qrcode\u id','=',1)
正在打印是。但是如果我把
->放在哪里('qrcode_id','=',2)
那么它是空的。它应该是
。我想你就快到了。@ChoncholMahmud提供你的表定义和一些相关的样本数据集来生成qrcode_id=2的问题,如果你能在上面添加你的模式和数据,并为我们提供样本数据的链接,那就更好了是的,我正在寻找这种。。谢谢:)