问题描述
我的报告视图中有一个选择"菜单,该菜单应允许用户选择多个状态",然后在我的控制器中,查询结果应位于所有选定的状态"中.但是我不确定如何格式化-> whereIn以包括那些状态.关于我需要做的任何想法,我才刚开始使用Laravel.
I have a Select menu in my reports view that should allow a user to select multiple 'status', then in my controller the query results should be in all the selected 'status'. However I am unsure how to format the ->whereIn to include those statuses. Any Ideas on what I need to do, I am just getting started with Laravel.
这是我尝试使用数组的查询部分.也是控制器
This is the part in the query where I am trying to use the array. also the controller
public function reportFailedPayments(){
$paymentstatus = Input::get('PaymentStatus');
$startdate = Input::get('startdate');
$enddate = Input::get('enddate');
$status = Input::get('status');
$data = DB::table('Payments')
->join('Customer_Purchases', 'Payments.Purchase_ID','=','Customer_Purchases.Purchase_ID')
->leftJoin(
DB::raw('(Select Payment_ID, max(Process_Hist_ID) AS Process_Hist_ID FROM Payment_Process_History GROUP BY Payment_ID) PHID'), function($join){
$join->on('PHID.Payment_ID', '=', 'Payments.Payment_ID');
})
->leftJoin('Payment_Process_History', 'Payment_Process_History.Process_Hist_ID', '=', 'PHID.Process_Hist_ID')
->leftJoin('Billing_Information', 'Payment_Process_History.Billing_Info_ID', '=', 'Billing_Information.Billing_Info_ID')
->join('Users', 'Users.User_ID', '=', 'Customer_Purchases.User_ID')
->join('Product_Instances', 'Product_Instances.Instance_ID', '=', 'Customer_Purchases.Instance_ID')
->join('Products', 'Products.Product_ID', '=', 'Product_Instances.Product_ID')
->select('Users.First_Name AS First_Name', 'Users.Last_Name AS Last_Name', 'Users.Email AS Email',
'Payments.Payment_Date AS Scheduled_Payment_Date', 'Payments.Pay_Amount As Pay_Amount',
'Products.Name AS Product_Name',
'Customer_Purchases.Purchase_Date As Purchase_Date', 'Payment_Process_History.Process_Time AS Last_Processed',
'Payment_Process_History.Transaction_ID AS Transaction_ID', 'Payment_Process_History.Trans_Response_Code AS Transaction_Code',
'Payment_Process_History.Trans_Response_Text as Transaction_Message', 'Billing_Information.Payment_Type AS Payment_Type', 'Billing_Information.CCType AS CCType', 'Billing_Information.CCLast4 AS CCLast4')
->whereIn('Payments.Status',array($paymentstatus))
->whereBetween('Payments.Payment_Date', array($startdate, $enddate))->get();
return View::make('admin.reports.failedPayments.report')->with(array('payments'=>$data));
在视图"中选择菜单.
<label for="startdate">Start Date</label><input type="date" id="startdate" value="{{ date('Y-m-d', strtotime("-1 days")) }}" />
<label for="enddate">End Date</label><input type="date" id="enddate" value="{{ date('Y-m- d') }}" />
<label for="status">Status</label><br>
<select multiple="multiple" id="status" name='PaymentStatus'status="Status" size="1">
<option value='ALL'>-- ALL --</option>
<option value='{{ PaymentStatus::Pending}}'>{{ PaymentStatus::toString(PaymentStatus::Pending) }}</option>
<option value='{{ PaymentStatus::Charged}}'>{{ PaymentStatus::toString(PaymentStatus::Charged) }}</option>
<option value='{{ PaymentStatus::Denied}}'>{{ PaymentStatus::toString(PaymentStatus::Denied) }}</option>
<option value='{{ PaymentStatus::Refunded}}'>{{ PaymentStatus::toString(PaymentStatus::Refunded) }}</option>
<option value='{{ PaymentStatus::PendingReview}}'>{{ PaymentStatus::toString(PaymentStatus::PendingReview) }}</option>
<option value='{{ PaymentStatus::Cancelled}}'>{{ PaymentStatus::toString(PaymentStatus::Cancelled) }}</option>
推荐答案
使用name
属性作为name="PaymentStatus[]"
返回数组,因此您可以通过以下方式获得选定的选项:
Use name
attribute as name="PaymentStatus[]"
to return an array, so you can get selected options with:
$paymentstatus = Input::get('PaymentStatus');
这篇关于将多个选择选项加载到数组中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!