草庐IT

php - Laravel 分页不适用于日期搜索

coder 2024-04-19 原文

我的应用程序中有几个搜索表单,其中分页效果很好,但是当涉及到日期搜索时,我只得到第一页,当我尝试转到第二页时,我得到一个未定义的 $ticket 变量。当我查看 URL 时,我可以看到它没有将日期值带到下一页。

这是我的代码:

<tbody class="searchTable">
  @foreach($ticket as $tickets)
    <tr>
        <td>
            {{Carbon::parse($tickets->created_at)->format('m/d/Y')}}
        </td>
        <td><a href="/ticket/{{$tickets->id}}">{{$tickets->id}}</a></td>
        <td><a href="/ticket/client/{{$tickets->clientName}}">{{$tickets->clientName}}</a></td>
        <td>
            {{Carbon::parse($tickets->dueDate)->format('m/d/Y')}}   
        </td>
        <td>{{$tickets->refNumber}}</td>
        <td>{{$tickets->invoiceNumber}}</td>
        <td>{{$tickets->jobLocation}}</td>
        <td>{{$tickets->workDescription}}</td>
        <td>{{$tickets->jobStatus}}</td>
    </tr>
  @endforeach
</tbody> 
{!! $ticket->appends(Request::only('_token','search'))->render() !!}

这是 Controller :

  $ticket = DB::table('tickets')
            ->whereBetween('created_at', [$newDateFrom, $newDateTo])
            ->orderBy('created_at', 'desc')
            ->paginate(10);
  return view('ticketsView', compact('ticket'));

最佳答案

这是我的解决方案:

我对不同的搜索请求有相同的 View ,所以我将结果附加到分页器,这样它也会在下一页上显示。名称是搜索表单中名称属性的值。就我而言,我有多个。这是一个例子:

{!! $ticket->appends(Request::only(['dateFrom'=>'dateFrom', 'dateTo'=>'dateTo', 'search'=>'search', 'filter'=>'filter', 'dueDateFrom'=>'dueDateFrom','dueDateTo'=>'dueDateTo']))->render() !!} 

所以现在如果我的搜索结果将包含在 URL dateTo 和 dateFrom 值中,那么它将被保存到所有页面。了解这些值来自搜索表单的名称属性很重要。

这是一个例子:

 <form class="form-horizontal" role="form" method="GET" action="/ticket/searchresults" accept-charset="UTF-8" enctype="multipart/form-data">
   <div class="text-centered">
     <p><strong>Search by dates:</strong></p>
   </div>
   <div class="form-group">
     <label for="filter">Select Client (optional)</label>
     <select class="form-control" name="filter" type="text">
       <option disabled selected> -- select client -- </option>
       @foreach($selectClient as $selectClients)
         <option value="{{$selectClients->name}}">{{$selectClients->name}}</option>
       @endforeach
     </select>
   </div>
   <div class="form-group">
     <label for="dateFrom">From:</label>
     <input class="datepicker2 form-control" name="dateFrom" type="text" required/>
   </div>
   <div class="form-group">
     <label for="dateTo">To:</label>
     <input class="datepicker2 form-control" name="dateTo" type="text" required/>
   </div>
   <button type="submit" class="btn btn-primary"><span class="fa fa-fw fa-search"></span></button>
 </form>

关于php - Laravel 分页不适用于日期搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34538800/

有关php - Laravel 分页不适用于日期搜索的更多相关文章

  1. ruby-on-rails - Rails 常用字符串(用于通知和错误信息等) - 2

    大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje

  2. ruby-on-rails - date_field_tag,如何设置默认日期? [ rails 上的 ruby ] - 2

    我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问

  3. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  4. ruby-on-rails - Ruby 检查日期时间是否为 iso8601 并保存 - 2

    我需要检查DateTime是否采用有效的ISO8601格式。喜欢:#iso8601?我检查了ruby​​是否有特定方法,但没有找到。目前我正在使用date.iso8601==date来检查这个。有什么好的方法吗?编辑解释我的环境,并改变问题的范围。因此,我的项目将使用jsapiFullCalendar,这就是我需要iso8601字符串格式的原因。我想知道更好或正确的方法是什么,以正确的格式将日期保存在数据库中,或者让ActiveRecord完成它们的工作并在我需要时间信息时对其进行操作。 最佳答案 我不太明白你的问题。我假设您想检查

  5. ruby - 检查日期是否在过去 7 天内 - 2

    我的日期格式如下:"%d-%m-%Y"(例如,今天的日期为07-09-2015),我想看看是不是在过去的七天内。谁能推荐一种方法? 最佳答案 你可以这样做:require"date"Date.today-7 关于ruby-检查日期是否在过去7天内,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/32438063/

  6. ruby-on-rails - 将 Ruby 中的日期/时间格式化为 YYYY-MM-DD HH :MM:SS - 2

    这个问题在这里已经有了答案:Railsformattingdate(4个答案)关闭4年前。我想格式化Time.Now函数以显示YYYY-MM-DDHH:MM:SS而不是:“2018-03-0909:47:19+0000”该函数需要放在时间中.现在功能。require‘roo’require‘roo-xls’require‘byebug’file_name=ARGV.first||“Template.xlsx”excel_file=Roo::Spreadsheet.open(“./#{file_name}“,extension::xlsx)xml=Nokogiri::XML::Build

  7. ruby-on-rails - Nokogiri:使用 XPath 搜索 <div> - 2

    我使用Nokogiri(Rubygem)css搜索寻找某些在我的html里面。看起来Nokogiri的css搜索不喜欢正则表达式。我想切换到Nokogiri的xpath搜索,因为这似乎支持搜索字符串中的正则表达式。如何在xpath搜索中实现下面提到的(伪)css搜索?require'rubygems'require'nokogiri'value=Nokogiri::HTML.parse(ABBlaCD3"HTML_END#my_blockisgivenmy_bl="1"#my_eqcorrespondstothisregexmy_eq="\/[0-9]+\/"#FIXMEThefoll

  8. ruby - 查找字符串中的内容类型(数字、日期、时间、字符串等) - 2

    我正在尝试解析一个CSV文件并使用SQL命令自动为其创建一个表。CSV中的第一行给出了列标题。但我需要推断每个列的类型。Ruby中是否有任何函数可以找到每个字段中内容的类型。例如,CSV行:"12012","Test","1233.22","12:21:22","10/10/2009"应该产生像这样的类型['integer','string','float','time','date']谢谢! 最佳答案 require'time'defto_something(str)if(num=Integer(str)rescueFloat(s

  9. ruby - inverse_of 是否适用于 has_many? - 2

    当我使用has_one时,它​​工作得很好,但在has_many上却不行。在这里您可以看到object_id不同,因为它运行了另一个SQL来再次获取它。ruby-1.9.2-p290:001>e=Employee.create(name:'rafael',active:false)ruby-1.9.2-p290:002>b=Badge.create(number:1,employee:e)ruby-1.9.2-p290:003>a=Address.create(street:"123MarketSt",city:"SanDiego",employee:e)ruby-1.9.2-p290

  10. ruby-on-rails - ruby 日期方程不返回预期的真值 - 2

    为什么以下不同?Time.now.end_of_day==Time.now.end_of_day-0.days#falseTime.now.end_of_day.to_s==Time.now.end_of_day-0.days.to_s#true 最佳答案 因为纳秒数不同:ruby-1.9.2-p180:014>(Time.now.end_of_day-0.days).nsec=>999999000ruby-1.9.2-p180:015>Time.now.end_of_day.nsec=>999999998

随机推荐