通过终端I安装了Ramsey/Uuid插件:
composer require ramsey/uuid在我的PagesRepository.php中,我创建了以下函数:
use Ramsey\Uuid\Uuid;
function generateUid()
{
$uuid = Uuid::uuid4();
$uuid = $uuid->getHex();
$uuid = substr($uuid,0,10);
return $uuid;
}我在PagesController.php中使用这个函数
$unique_id = PagesRepository::generateUid();
$entity->setUnique_id($unique_id);它在我的本地机器上运行得很好,但是我通过git将它推到我的服务器上,在那里我得到了错误消息:
试图从命名空间"Ramsey\Uuid“加载类"Uuid”。你忘了"Symfony\Component\Validator\Constraints\Uuid"?的“使用”语句了吗?
我不能在服务器上安装任何东西,因为它是一个共享主机,并且权限被拒绝,所以我将ramsey文件夹复制到服务器上的供应商文件夹中。但这并不能解决问题。
我不明白,为什么这会要求Symfony验证器,因为它在本地机器上不需要它。
发布于 2018-11-29 09:02:49
这是因为composer自动生成的文件没有链接您的文件夹或类(ramsey)。
因此,据我所知,您不能在共享主机上运行composer update或composer install,您应该将整个更新的vendor文件夹上载到您的服务器上。
然后自动生成的文件(如vendor\composer\autoload_psr4.php )将被更新,并具有指向类(如Ramsey\Uuid\Uuid )的链接。
点是
PHP名称空间不能自动包含类/文件。它用composer自动生成的链接文件和__auload魔术函数加载类。
https://stackoverflow.com/questions/53534884
复制相似问题