代码可以在控制台上工作,但不能;不采用这种方法


code works from console, but doesn't work in method

我使用条令2创建了sqlite数据库。当我从控制台运行create_product.php时,它运行得很好,但我想从php类创建产品。所以我用create_product.php代码创建了方法,并包含了bootstrap.php,但我遇到了问题:未定义的变量:entityManager。

create_product.php

<?php
// create_product.php
require_once "bootstrap.php";
    $name = 'name';
    $date = date("d.m.Y");
    $time = time();
    $product = new Product();
    $product->setName($name);
    $product->setSaveDate($date);
    $product->setSaveTime($time);
    $entityManager->persist($product);
    $entityManager->flush();
echo "Created product with ID " . $response->getId() . "'n";
?>

和php类文件:

<?php
namespace app'monitor;
use Product;
require_once dirname(dirname(dirname(__DIR__))) . "/bootstrap.php";
class Service {
public function work() {
       $name = 'name';
       $this->saveProduct($name);   
public function saveProduct($name) {
        $date = date("d.m.Y");
        $time = time();
        $entity = new Product();
        $entity->setName($name);
        $entity->setSaveTime($time);
        $entity->setSaveDate($date);
        $entityManager->persist($entity);
        $entityManager->flush();
    }
}

为什么它可以在控制台上工作,但不能在方法中工作?

首先,不能在body类内部调用方法(不能在其他方法中调用)。其次$entityManager将为null(它不是saveProduct方法变量)。

相关文章: