【发布时间】:2017-11-02 09:07:02
【问题描述】:
以下代码包括 roop 语句和分页。 我也希望遵循 MVC 样式编码,但在这种情况下,我必须在下面的视图中使用 @if 语句。
当我尝试按@if(!deleted_at == null) 过滤时出错,但我无法显示正确的分页,因为这段代码也用“(deleted_at == null)”计数,所以结果是显示的页码不正确。
通过此控制器后,如何修改此代码以获得正确的分页结果?
我认为错误来自将 Where() 与 Orwhere() 一起使用。
谢谢:)
按用户名和客户名搜索框
index.php
<div style="overflow-x: auto; display: inline-flex;">
{!! Form::open(array('class' => 'form', 'method' => 'get', 'url' => url('/stopjobs/job_finished_search_date'))) !!}
{{ Form::input('text', 'datepicker_from', null, ['placeholder' => 'Fra', 'id' => 'datepicker_from']) }}
{{ Form::input('text', 'datepicker_to', null, ['placeholder' => 'Til', 'id' => 'datepicker_to']) }}
{!! Form::submit('Søke', ['class' => 'btn btn-success btn-sm']) !!}
{!! Form::close() !!}
{!! Form::open(array('class' => 'form', 'method' => 'get', 'url' => url('/stopjobs/job_finished_search_name'))) !!}
{!! Form::text('name', null, ['placeholder' => 'Bruker eller Kunde']) !!}
{!! Form::submit('Søke', ['class' => 'btn btn-success btn-sm']) !!}
{!! Form::close() !!}
</div>
控制器
public function job_finished_search_name(Request $request)
{
$jobs = Job::onlyTrashed()
->where('user_name', 'like', '%'.$request->name.'%')
->orwhere('customer_name', 'like', '%'.$request->name.'%')
->orderBy('deleted_at', 'desc')
->paginate(15);
return view('stopjobs.index', ['jobs' => $jobs]);
}
查看
<tbody>
@foreach($jobs as $job)
@if(!$job->deleted_at == null)
<tr>
<td>{!! $job->id !!}</td>
<td>{!! $job->user_name !!}</td>
<td>{!! $job->created_at !!}</td>
<td>{!! $job->deleted_at !!}</td>
<td>{!! $job->usedTime() !!}</td>
</tr>
@endif
@endforeach
</tbody>
</table>
</div>
{{ $jobs->links()}}
【问题讨论】:
-
软删除的模型将自动从查询结果中排除。你为什么放这张支票???阅读此链接laravel.com/docs/5.4/eloquent#soft-deleting
-
@ParthShah,我已经在模型中使用了 softdeleted,所以我在服务器中删除了日期。如果你想在视图中查看已删除的日期,那你怎么能做到这一点,而不是在其他地方,比如模型和控制器呢?
-
所以你只想显示垃圾数据???
-
@ParthShah,我希望在这种情况下得到正确的分页数:),得到垃圾数据不是问题。:)
-
@if($job->deleted_at != null)呢?
标签: php laravel laravel-5 laravel-pagination