我已经在我的一个控制器中创建了一个钩子函数,用于在提交表单后更新字段。
该钩子应使用实验室名称填充“ orders_detail”数据库的“实验室”字段。
/* POPULATE the laboratory FIELD */
DB::table('orders_detail')->where('id',$id)->first();
/* dd($id); */
/* REQUESTED VALUE IN ARRAY : "ordersdetail-productname" => array:1 [▼ 0 => "1" ] : */
$productname = $_REQUEST['ordersdetail-productnameID'][0];
/* dd($productnameID); **RETURN VALUE "1"** */
/* QUERY : select laboratories.laboratory FROM products LEFT JOIN laboratories ON products.laboratoryID = laboratories.id WHERE products.id = productnameID : */
$laboratory = DB::table('products')
->join('laboratories', 'products.laboratoryID', '=', 'laboratories.id')
->selectRaw('laboratories.laboratory')
->where('products.id', '=', $productnameID)
->get();
/* dd($laboratory); **RETURNED ARRAY
Collection {#3536 ▼
#items: array:1 [▼
0 => {#3534 ▼
+"laboratory": "Boulanger"
}
]
}** */
/* UPDATE THE laboratory FIELD WITH THE RETURNED VALUE */
DB::table('orders_detail')->where('orderID', '=', $id)
->update(['laboratory'=> $laboratory]);
如何摆脱“实验室”:“ Boulanger” ,而保留 Boulanger ,这是我要更新“ laboratory”字段的实验室名称
感谢您的专业知识。
干杯,马克
答案 0 :(得分:1)
将您的实验室查询更新为
_id
$laboratory = DB::table('products')
->join('laboratories', 'products.laboratoryID', '=', 'laboratories.id')
->selectRaw('laboratories.laboratory')
->where('products.id', '=', $productnameID)
->first();
将为您提供期望的值。
更新为
$laboratory->laboratory
答案 1 :(得分:0)
尝试
$laboratory = DB::table('products')
->join('laboratories', 'products.laboratoryID', '=', 'laboratories.id')
->where('products.id', '=', $productnameID)
->pluck('laboratories.laboratory');