首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Laravel中使用GOTO比使用GOTO更好

在Laravel中使用GOTO比使用GOTO更好
EN

Stack Overflow用户
提问于 2018-05-18 20:44:45
回答 1查看 718关注 0票数 0

现在我不得不在Laravel 5.6v中使用GOTO来实现一些逻辑。

如何才能使代码的功能与GOTO相同,并且代码更美观?:)

代码语言:javascript
复制
public function job_finished_search(Request $request)
{
    $rFrom = $request->input('datepicker_from');
    $rTo = $request->input('datepicker_to');
    $rName =$request->customer_name;

    if($rFrom == null){
        if($rTo == null){
            if($rName == null){
            Flash::error('Search result not found');
            return redirect(route('pdf.index'));
            }
            $query = Job::onlyTrashed()
                        ->where('is_trash', 0)
                        ->where('customer_name', $rName)
                        ->orderBy('created_at', 'desc');
                        goto A;
        }

        elseif($rTo != null){
            if($rName == null){
                $query = Job::onlyTrashed()
                ->where('is_trash', 0)
                ->where('created_at', '<=', Carbon::parse($rTo)->endOfDay())
                ->orderBy('created_at', 'desc');
                goto A;
            }
        ...
        ...
}

A: $job_ids = $query->pluck('id')->all();  
EN

回答 1

Stack Overflow用户

发布于 2018-05-18 21:00:55

更干净的方式,

代码语言:javascript
复制
$buildquery=Job::onlyTrashed()->where('is_trash', 0);

if($request->filled('customer_name')){
    $buildquery->where('customer_name', $request->customer_name);
}

if($request->filled('datepicker_to')){
    $buildquery->where('created_at', '<=', Carbon::parse($request->datepicker_to)->endOfDay());
}

$result = $buildquery->orderBy('created_at', 'desc')->get();

$job_ids = $result->pluck('id');

您没有在任何地方使用$rFrom,所以我省略了它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50411639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档