【问题标题】:how to add a method to all controller by default in laravel?如何在 laravel 中默认向所有控制器添加方法?
【发布时间】:2021-09-10 19:19:38
【问题描述】:

我想为每个由 artisan 命令创建的控制器添加新方法 例如,如果我运行“php artisan make:controller BookController” 然后我希望 BookController 文件默认有一个名为“详细信息”的方法 有什么办法吗?

【问题讨论】:

    标签: laravel


    【解决方案1】:

    Laravel 在使用 php artisan make:... 创建新模型/控制器/迁移等时使用“存根”。

    运行php artisan stub:publish 将默认存根发布到项目中的/stubs/ 文件夹中。然后,您可以根据自己的喜好轻松自定义这些存根。

    Stub Customization

    【讨论】:

    • 那么您将在所有控制器中多次声明同一方法。 @Miladpegah 解决方案更适合。
    • @N69S "我想为每个由 artisan 命令创建的控制器添加新方法" 这就是 OP 想要的
    • @N69S 猜猜这取决于 OP 真正想要什么。 OP 没有指定他们是否希望名为“details”的方法在所有控制器中具有相同的功能,或者他们是否只想像创建资源控制器时那样为该方法提供一个“脚手架”。那些已经有“空白”indexcreateedit 等方法。
    【解决方案2】:

    所有控制器都扩展App\Http\Controllers\Controller 类。 将您的方法添加到控制器(App\Http\Controllers\Controller.php)并在所有控制器中使用它。

    【讨论】:

      【解决方案3】:

      我相信您需要编写自己的自定义make 命令来实现它。我发现有一个链接可能对您有所帮助 - https://medium.com/@imfx/create-make-custom-commands-in-laravel-9fa002da582e

      基本上,您需要覆盖make:controller 并使用您自己的存根。

      【讨论】:

        猜你喜欢
        • 2019-06-28
        • 2011-10-26
        • 2013-01-02
        • 2019-01-25
        • 1970-01-01
        • 2019-06-15
        • 2010-11-06
        • 2016-07-05
        • 1970-01-01
        相关资源
        最近更新 更多