【问题标题】:Laravel Model Object Gets Created Two TimesLaravel 模型对象被创建两次
【发布时间】:2017-06-20 08:14:41
【问题描述】:

我正在使用new 关键字创建我的模型对象。但是每次都创建了两个对象。我的代码是

class DashBoardController extends Controller
{
    public static $count=0;
    public function __construct()
    {
        DashBoardController::$count++;
    }

    public function dashboard(Request $request)
    {
        $obj = new DashBoardController();
        echo DashBoardController::$count;
    }
}

它给了我输出

O/P:2

【问题讨论】:

  • 您从dashboard() 函数获得输出,对吗?在这种情况下,这是因为您在回显计数之前再次创建了一个新实例。因此,它会将您的 $count 属性增加两次。
  • @FMashiro 我编辑了我的问题,实际上该类扩展了控制器,但在这里我只使用 new 创建一个对象,所以构造函数应该只被调用一次并且计数只增加到 1
  • 所以,如果我理解正确,你要做的就是:$dashboard = new DashBoardController(); echo $dashboard::$count; ,然后返回 2??
  • @FMashiro 是的,$count 是一个静态变量,所以我只是用类名来调用它
  • 但我的意思是,这是您脚本的唯一内容吗?制作一个只包含那个和你的类的测试文件,以确保它可以在其他地方被调用。

标签: php laravel class object laravel-5


【解决方案1】:

结果是对的,有两个DashboardController实例:一个是路由创建的,一个是dashboard方法创建的。 似乎最好使用 $this 而不是创建控制器的新实例。

在仪表板方法中,你在一个已经存在的控制器中!

【讨论】:

    猜你喜欢
    • 2017-06-19
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    • 1970-01-01
    • 2020-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多