当前位置: 首页 > 知识库问答 >
问题:

我的laravel课程应该扩展什么?

淳于恺
2023-03-14

根据这些答案中的建议:对于laravel 4助手或基本功能,什么是最佳实践和最佳场所?

我已经创建了一个文件app/library/sitehelopers。php并将其添加到应用程序中。我的类应该扩展什么,如何在控制器中引用它?

<?php

    class SiteHelpers{

    function save($type, $postid, $url, $author, $content)
    {
        $post = new Post;
        $post->type = $type;
        $post->postid = $postid;
        $post->url = $url;
        $post->author = $author;
        $post->content = $content;
        try
        {
        $post->save();
        echo $post;
        }catch(Exception $e){
            throw new Exception( 'Already saved', 0, $e);
        } 
    }
}

我尝试在控制器中这样引用它:

public function savepostController($type, $postid, $url, $author, $content)
{
    SiteHelpers::save($type, $postid, $url, $author, $content);
}

但我得到控制器的方法没有找到。

共有1个答案

庾远航
2023-03-14

你不需要扩展任何东西,你的类就可以在laravel中使用。只要你的文件在作曲家要求路径中,你的类就会被laravel加载。

您可以扩展或实现一些laravel的类来添加一些功能(例如facade),但这不是必需的。

此外,根据您提供的代码,save函数更多地属于模型,而不是外部帮助器。助手必须只包含简单的方法,如格式化日期或基于其他值计算某些值。您的助手必须包含不使用外部内容的简单函数(在本例中,是一个雄辩的模型),以便更无依赖性(并且在更改该模型时更不容易出错)。尝试将其移动到Post模型(作为静态函数)。

编辑:为了静态地调用它(使用::),您必须使您的函数也是静态的,或者使用laravelioc(facade)为您完成这项工作。(文档中的更多信息:http://laravel.com/docs/facades )

 类似资料:
  • 有没有办法从JavaScript(Nashorn)中获取和使用扩展Java类? 我试图做的是在Nashorn中扩展一个Java类,然后将其传递回Java。例如,我们在JS中定义了一个类来扩展另一个类: 然后我试图得到这个扩展的对象在Java像这样: 然而,我无法在Java中对此对象进行任何方法调用。当我试图将其转换为基类时,它总是抛出异常。测验SomeClass。 是否可以在Java中使用在Nas

  • 问题内容: 我有一个只包含字段而没有方法的类,如下所示: 这可以很容易地翻译成字典。该类对于将来的添加更加灵活,使用可以更快。那么使用dict会有好处吗?字典会比全班更快吗?并且比具有插槽的课程快吗? 问题答案: 你为什么要把它当作字典?有什么好处?如果您以后要添加一些代码,会发生什么?您的代码会去哪儿? 类用于捆绑相关数据(通常是代码)。 字典用于存储键- 值关系,其中通常键都是同一类型,并且所

  • 问题内容: 我还很陌生,因此无法找到任何文档或示例。我要做的是扩展基本服务,以便可以使用其他服务在基本服务下定义的方法。例如,说我有如下基本服务。 现在,我想定义一个从上述扩展的扩展服务,以便可以使用扩展服务中BasicService下定义的方法。也许像这样: 问题答案: 您应该注入以便能够访问它。旁边是对象文字,因此您实际上不能将其称为函数()。

  • 问题内容: 有人可以告诉我如何在Kotlin中对扩展功能进行单元测试吗?由于它们是静态解析的,应该将它们作为静态方法调用还是作为非静态方法进行测试?另外,由于语言可以与Java完全互操作,因此应如何针对Kotlin扩展功能执行Java单元测试? 问题答案: 好吧,要测试一种方法(无论是否静态),您可以像实际代码那样调用它,并检查它是否做对了。 例如,假设此扩展方法在文件com / foo / Ba

  • 有人能告诉我该如何在Kotlin中对扩展函数进行单元测试吗?由于它们是静态解析的,应该将它们测试为静态方法调用还是非静态方法调用?另外,由于语言与Java是完全可互操作的,那么应该如何执行Kotlin扩展函数的Java单元测试呢?

  • 问题内容: 我看到了这个问题,使用以下代码: 我想知道为什么我们不只是直接扩展?或在类似情况下扩展为什么要用 这样做是为了增加我们的意图,当其他开发人员来访时,他们会看到此类符合Flashable,Dimable等标准吗? 另外,我们的UIView会有单独的有意义的扩展吗?而不是UIView或UIViewController的其他未命名扩展? 关于POP这个主题,苹果是否有任何具体的指导方针?我已