【问题标题】:How to call a method of controller?如何调用控制器的方法?
【发布时间】:2019-06-06 00:27:46
【问题描述】:

我必须每小时运行一个脚本。所以我在服务器中所做的是每小时调用myfile.php 文件,它运行我的静态函数runT()

现在我的问题是在执行此runT() 函数后,我必须在控制器MyController 下运行方法test

我的文件.php

include "Helper.php";

Helper::runT();

Helper.php

public static function runT() {
        ini_set('max_execution_time', 300);
        $conn = self::getDbConnection();

MyController.php

class MyController extends Controller
{
   public function test() {

【问题讨论】:

标签: php laravel-5


【解决方案1】:
app(MyController::class)->test();

这将解析MyController 的一个实例,它将为您完成dependency injection 之类的工作,然后调用test 方法。

【讨论】:

  • 所以我只需在 runT 函数中添加 app(MyController::class)->test() ?
  • 是的,当然你应该使用完整的命名空间。
  • 但我收到以下错误:致命错误:调用 C:\xampp\htdocs\myapi\assets\auto\Helper.php 中的未定义函数 app()
  • hmm,如果你没有导入 composer autoload 文件,你会得到这个错误。您可以像这样使用导入自动加载文件require_once __DIR__ . '/vendor/autoload.php'; require_once __DIR__.'/../bootstrap/app.php';,您应该将路径更改为本地相对路径
  • 我不明白
【解决方案2】:

调用控制器方法。使用base_url。

 $.post('controller/method', $("#formid").serialize(), function (data) {
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-12
    • 2014-11-30
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    • 2013-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多