php - Laravel Controller - 在另一个函数中调用函数

标签 php laravel

从 Laravel Controller 中删除重复代码的最佳方法是什么?在我的特殊情况下,我有博客 Controller ,其中每个子页面(索引页面、关于、联系人、单个帖子页面......)都有多个功能。在这些函数中的任何一个中,我都有一些重复的代码。我可以创建一个特殊的函数,然后我可以调用任何函数吗?

class BlogController extends Controller {

    public function getIndex() {
        $blogs = Blog::orderBy('id', 'desc')->where('status', '1')->paginate(3);
        return view('index-page')->withBlogs($blogs);
    }

    public function getAbout() {
        $blogs = Blog::orderBy('id', 'desc')->where('status', '1')->paginate(3);
        return view('about-page')->withBlogs($blogs);
    }

}

现在,我想通过创建一个特殊函数来删除重复代码(我的代码只是示例,真正的重复代码要长得多)。这甚至可能吗?除了创建另一个函数之外,还有其他方法吗?也许我可以在 Wordpress 中创建类似 function.php 的东西?

最佳答案

您可以在 Controller 文件中创建另一个函数并调用它:

private function foo($view)
{
    $blogs = Blog::orderBy('id', 'desc')->where('status', '1')->paginate(3);
    return view($view)->withBlogs($blogs);
}

然后调用它:
public function getIndex() {
    return $this->foo('index-page');
}

public function getAbout() {
    return $this->foo('about-page');
}

如果你想创建一个可以随处调用的函数,你可以创建一个static类中的函数。前任:
public static function foo()
{
    return "foo";
}

然后调用它:
NameOfClass::foo();

关于php - Laravel Controller - 在另一个函数中调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47821738/

相关文章:

php - 在 EntityRepository 中获取 Symfony 容器

php - 搜索查询在 Laravel 中无法正常运行

php - 对字母和数字字符串类型元素的数组进行 ASC 排序,但数字元素位于字母元素之后

php - 安装 Laravel 后 XAMPP localhost 返回未找到的对象

html - 如何保存和显示从texterea编辑器(tinymce)提交的数据?

javascript - 单击时使用 ajax 搜索并在同一页面 laravel 中显示结果

php - NFS - PHP 问题

带有进度条的 PHP 和 HTML 多文件上传

laravel - Ubuntu Server 启动时 Supervisor 不会自动启动

javascript - 根据页面加载时的下拉值显示隐藏/div