如何在这里避免php代码重复

奥希杜勒伊斯兰教

我正在创建一个laravel待办事项应用程序。在我的控制器中,有不同的方法,但是其中的所有代码几乎都是相同的。在notCompleted方法和completed方法中,还有1个不同的where子句。除此之外,所有代码都是相同的。我如何在这里避免代码重复?

public function all() 
{
    $user_id = $this->user_id;

    $todos = $this->todos
            ->where('user_id', $user_id)
            ->orderBy('id', 'DESC')->paginate(15);

    return view('todos.index', compact('todos'));
}


public function notCompleted() 
{
    $user_id = $this->user_id;

    $todos = $this->todos
            ->where('user_id', $user_id)
            ->where('completed', false)
            ->orderBy('id', 'DESC')->paginate(15);

    return view('todos.index', compact('todos'));   
}


public function completed() 
{
    $user_id = $this->user_id;

    $todos = $this->todos
            ->where('user_id', $user_id)
            ->where('completed', true)
            ->orderBy('id', 'DESC')->paginate(15);
    return view('todos.index', compact('todos'));        
}
奥希杜勒伊斯兰教

我需要三种不同的方法,因此我保留了这些方法并将代码提取为一种方法。并可能节省代码重复。是不是

并感谢所有回应我的人:)

public function all() 
{
    return $this->todoStatus('all');
}

public function index()
{   
    return $this->todoStatus('current', false);
}

public function completed() 
{
    return $this->todoStatus('completed', true);
}

protected function todoStatus($completed, $status = false) 
{
    $user_id = $this->user_id;

    if($completed === 'all') {
        $todos = $this->todos
            ->where('user_id', $user_id)
            ->orderBy('id', 'DESC')->paginate(15);
        return view('todos.index', compact('todos'));
    } else {
        $todos = $this->todos
            ->where('user_id', $user_id)
            ->where('completed', $status)
            ->orderBy('id', 'DESC')->paginate(15);
        return view('todos.index', compact('todos'));       
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在这里申请sed?

来自分类Dev

如何在这里使用案例

来自分类Dev

如何在这里引用数组

来自分类Dev

如何在这里使用join

来自分类常见问题

垃圾收集器如何在这里避免无限循环?

来自分类Dev

我如何避免在这里使用goto语句?

来自分类Dev

我如何在这里使用 ES6 代码而不是 for 循环?

来自分类Dev

我如何在这里访问数组和?

来自分类Dev

MySQL如何在这里结合GROUP BY和COUNT

来自分类Dev

如何在这里正确使用绑定?

来自分类Dev

如何在这里删除trace0?

来自分类Dev

如何在这里禁用emacs文件补全

来自分类Dev

如何在这里使用分组查询

来自分类Dev

如何在这里解决NullPointer异常错误?

来自分类Dev

如何在这里正确使用启动命令?

来自分类Dev

如何在这里使用退出doc

来自分类Dev

我如何在这里找到想要的东西?

来自分类Dev

MySQL如何在这里结合GROUP BY和COUNT

来自分类Dev

如何在这里使用子选择器?

来自分类Dev

我如何在这里正确使用forloop?

来自分类Dev

我如何在这里使用通用方法?

来自分类Dev

我如何在这里使用 for 循环?

来自分类Dev

我如何在这里更改 $number 的值

来自分类Dev

我如何在这里修复 MalformedURLException?

来自分类Dev

如何在这里循环计时器?

来自分类Dev

我的代码在这里怎么了?

来自分类Dev

Ruby 代码“&:”在这里做什么

来自分类Dev

火花减少在这里如何工作

来自分类Dev

移动语义在这里如何工作?