【问题标题】:I have a parse error using eloquent with slim3我在使用 eloquent 和 slim3 时出现解析错误
【发布时间】:2019-04-16 01:47:56
【问题描述】:

我正在关注大约 3 岁的 Codecourse 视频系列 Authentication with Slim 3。 在使用 eloquent 访问 mysql 数据库时,我遇到了麻烦。 (相关视频:https://www.youtube.com/watch?v=70IkLMkPyPs

代码与目前在Illumination/database文档说明中推荐的代码不太一样,所以我稍微修改了代码以遵循该标准,但不管我是否遵循视频或视频中的亚历克斯代码接下来,解析错误结果。

$app = new \Slim\App([
  'settings' => [
    'displayErrorDetails' => true,

    'db' => [
      'driver' => 'mysql',
      'host' => 'localhost',
      'database' => 'opium3',
      'username' => 'root',
      'password' => 'root',
      'charset' => 'utf8',
      'collation' => 'utf8_unicode_ci',
    ]

  ],

]);


$container = $app->getContainer();

/*set up eloquent to use outside laravel*/
use \Illuminate\Database\Capsule\Manager as Capsule;
$capsule = new Capsule;
$capsule->addConnection($container['settings']['db']);
$capsule->setAsGlobal();
$capsule->bootEloquent();

运行应用程序产生了这个错误:

解析错误:语法错误,第 65 行 /var/www/public/opium3/vendor/illuminate/database/DatabaseManager.php 中的意外“=”

如果相关的话,我会在 scotchbox vagrant 设置上本地运行它。 有一个类似的问题 Parse error when run illuminate/database/capsule with bootEloquent() in PHP

但是这个答案并不能解决我的问题,因为服务器正在运行 php7。 我也试过在服务器上安装Illumination/database推荐的包,安装php-mbstring,编辑php.ini文件,但错误依旧。

我是否遗漏了一些明显的东西?

【问题讨论】:

  • 我看到这个问题被否决了。关于如何改进它的任何提示?

标签: php


【解决方案1】:

确保您至少使用 PHP 7.1。

/illuminate/database/DatabaseManager.php 使用的是 list()-construct 的简写版本,直到 PHP 7.1 才可用。

“旧”方法是:

list($var1, $var2) = someFunction(); 

而您,自 PHP 7.1 起,也可以这样做:

[$var1, $var2] = someFunction();

错误所在的行是这样的:

[$database, $type] = $this->parseConnectionName($name);

注意:

如果您无法将 PHP 版本从 7.0 升级到 7.1.3+,则需要使用旧版本的 Illuminate/Database-package。对 PHP 7.0 使用 5.5 版,然后在 PHP 7.1.3+ 上使用 5.6+

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-10
    • 2018-12-31
    • 2022-12-05
    • 1970-01-01
    • 2015-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多