我使用Virtual Box和Homestead与Laravel进行Web开发。多个项目(Laravel 5.1-5.4)工作正常,但今天我更新了Homestead并创建了一个新的Laravel项目。浏览器只显示一个白页,而不是欢迎屏幕。
laravel.log
提到语法错误:
[2018-02-13 08:47:49] local.ERROR: Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE) {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalThrowableError(code: 0): Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE) at /home/vagrant/Code/myproject/vendor/symfony/routing/Route.php:53)
这条线确实存在问号。它是PHP 7.1中引入的可空类型声明的一部分:
public function __construct(string $path, array $defaults = array(), array $requirements = array(), array $options = array(), ?string $host = '', $schemes = array(), $methods = array(), ?string $condition = '')
php -v
告诉我安装了PHP 7.2:
PHP 7.2.2-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Feb 1 2018 16:01:26) ( NTS )
这里有什么问题?为什么PHP 7.2会因7.1中引入的语法特性而引发错误?
Vagrant版本(vagrant -v
)是2.0.1
宅基地版本(vagrant box list
)是5.1.0
Laravel版本(php artisan --version
)是5.6.3。
由于
答案 0 :(得分:0)
原来我还必须从Github更新Homestead包:
DECLARE @I INT=0
WHILE @I <2000000001
BEGIN
INSERT INTO "Table here"
VALUES(@I)
SET @I=@I+1
END
文档:
https://www.dbis.informatik.uni-goettingen.de/Mondial/mondial-abh.pdf
有关Homestead box vs. Homestead包裹的解释:
https://laravel.com/docs/5.5/homestead#updating-homestead