在我的 ubuntu 上安裝新的 Magento 2 時遇到問題。運行命令時出現錯誤:
sudo bin/magento setup:install
--admin-firstname="zzz"
--admin-lastname="zzz"
--admin-email="[email protected]"
--admin-user="admin"
--admin-password="admin123"
--db-name="zzzdb"
--db-user="root"
--db-password=""
錯誤: 創建物件時發生型別錯誤:Magento\Framework\Stdlib\DateTime\DateTime
我已經咨詢了解決方案,但它似乎是在創建一個新專案,而不是安裝。我試過了rm -rf generated/,chmod -R 777 generated/。但它不起作用=((
感謝您的任何回答。
uj5u.com熱心網友回復:
型別錯誤意味著物件管理器由于引數無效而無法實體化給定物件。類 \Magento\Framework\Stdlib\DateTime\DateTime 依賴于 TimezoneInterface
public function __construct(TimezoneInterface $localeDate)
哪個是由哪個實作的
Magento\Framework\Stdlib\DateTime\Timezone
,然后取決于
Magento\Framework\Stdlib\DateTime\Intl\DateFormatterFactory
需要 PHP-intl 擴展。(在建構式中實體化 IntlDateFormatter)
$formatter = new \IntlDateFormatter(
$locale,
$dateStyle,
$timeStyle,
$timeZone
);
我的猜測是你還沒有為 PHP 安裝 intl 擴展。 https://www.php.net/manual/en/intl.installation.php
您可以通過提供 -vvv 作為命令引數來獲得更詳細的輸入。
uj5u.com熱心網友回復:
這很簡單,因為 \DateTime 物件總是包含一個時區,所以可以隨時將其轉換為 UTC。如您所見,它確實在內部呼叫 \Magento\Framework\Stdlib\DateTime 將時間轉換為文本表示。
理想情況下,與任何其他現代 PHP ORM 一樣,您應該能夠指定 \DateTime 物件,其余的存盤方式應由庫本身處理。因此,眾所周知,在安裝程序中,缺少 PHP 國際擴展。
希望它會幫助你。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/532124.html
