嗨我有一张名为invoice的表格,我正在尝试搜索特定日期之间创建的pi,所有操作都朝着正确的方向前进并显示正确的结果,但我的 created_at 列没有显示正确显示我今天日期的值而不是显示数据库值。
我的控制器代码
public function search_pi1(Request $request){
$from_date=date("Y-m-d", strtotime($request->from_date));
$to_date=date("Y-m-d", strtotime($request->to_date));
$q=$request->q;
$pi=PI::where('created_at','>=',$from_date)->where('created_at','<=',$to_date)->where('company_name','LIKE','%'.$q.'%')->get();
$params=[
'pi'=>$pi,
'from_date'=>$request->from_date,
'to_date'=>$request->to_date,
'q'=>$q,
];
return view('pi.search_pi1')->with($params);
}
我的观看代码是
@if(sizeof($pi)>0)
<div class="table-responsive">
<table cellpadding="1" cellspacing="1" class="table table-bordered table-striped">
<thead>
<tr>
<th>S.N.</th>
<th>Invoice No</th>
<th>Company Name</th>
<th>Source</th>
<th>Destination</th>
<th>Dept</th>
<th>Creation Date</th>
<th>Created By</th>
<th colspan="2">Action</th>
</tr>
</thead>
<tbody>
@php($i=1)
@foreach($pi as $enquiry)
<tr>
<td>{{$i++}}</td>
<td>{{$enquiry->invoiceNumber}}</td>
<td>{{$enquiry->company_name}}</td>
<td>{{$enquiry->invoice_source}}</td>
<td>{{$enquiry->invoice_destination}}</td>
<td>{{$enquiry->dept}}</td>
<td>
{{ $enquiry->created_at }}
</td>
<td>{{$enquiry->created_by}}</td>
<td> <form action="{{ route('pi.editPi')}}" method="post">
<input type="text" name="pi_id" value="{{$enquiry->id}}" style="display: none;">
<button class="btn btn-info btn-xs">
<i class="fa fa-pencil" title="Edit"></i> </button>
</form></td>
<td><a href="" class="btn btn-danger btn-xs"><i class="fa fa-trash-o" title="Delete"></i> </a></td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div> @else
<br> <br> <br>
<h4 style="color: red;text-align: center;">No Record Found</h4>
@endif
当我搜索在20-3-2018到22-03-2018之间创建的pi时它显示了我的两条记录,但是创建的列显示在2018年3月22日 - 07:38:11而不是显示数据库实际值。
1 35 The Manali Inn Himachal Pradesh Himachal Pradesh Mr. Manoj Sharma Tel 123456987 22 Mar 2018 - 07:38:11 ADMIN
2 693金星交易员德里安达曼和尼科巴岛Mr.Vinod电话:123456789 22三月2018 - 07:38:11管理员
以下是此搜索的表格数据
我注意到还有一件事,如果我改变系统日期,那么它显示我在系统中设置的日期而不是数据库日期,任何人都有这个想法
PI模型
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class PI extends Model
{
//
protected $table = 'invoice';
protected $fillable = ['invoiceNumber','eid','company_name','address','city','dept','form_type','security1','invoice_source','invoice_destination','invoice_type','tin_no','cust_order_no',];
protected $dates = ['created_at', 'updated_at'];
}
答案 0 :(得分:0)
有两种方法可以解决此问题。
您可以将时间与Y-m-d一起添加。 e.g。
public function search_pi1(Request $request){
$from_date=date("Y-m-d", strtotime($request->from_date)) . '00:00:00';
$to_date=date("Y-m-d", strtotime($request->to_date)) . '23:59:59';
$q=$request->q;
$pi=PI::where('created_at','>=',$from_date)->where('created_at','<=',$to_date)->where('company_name','LIKE','%'.$q.'%')->get();
$params=[
'pi'=>$pi,
'from_date'=>$request->from_date,
'to_date'=>$request->to_date,
'q'=>$q,
];
return view('pi.search_pi1')->with($params);
}
但这将是解决问题的外行方式。
您可以使用whereDate方法
更新where方法 public function search_pi1(Request $request){
$from_date=date("Y-m-d", strtotime($request->from_date));
$to_date=date("Y-m-d", strtotime($request->to_date));
$q=$request->q;
$pi=PI::whereDate('created_at','>=',$from_date)->whereDate('created_at','<=',$to_date)->where('company_name','LIKE','%'.$q.'%')->get();
$params=[
'pi'=>$pi,
'from_date'=>$request->from_date,
'to_date'=>$request->to_date,
'q'=>$q,
];
return view('pi.search_pi1')->with($params);
}
请随时再问我,如果您发现错误,请告诉我。