调用未定义的方法Illuminate \ Database \ Schema \ Blueprint :: enablePostgis()

时间:2017-09-28 12:32:34

标签: php database symfony postgis

我正在尝试设置Laravel应用。我确保使用brew:

在我的systme上安装了postgis
$ brew install postgis
Warning: postgis 2.3.2 is already installed

我知道它已被列为composer.json中所需的包之一,如下所示:

"phaza/laravel-postgis": "^3.0",

我也可以在我的composer.lock中找到它。

然而,当我运行php artisan migrate时,我得到了这个

[Symfony\Component\Debug\Exception\FatalThrowableError]
  Call to undefined method Illuminate\Database\Schema\Blueprint::enablePostgis()

我的代码看起来像这样

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            ...
            $table->enablePostgis();

如果我点击enablePostgis上的跳转到定义,就会把我带到这里:

vendor/phaza/laravel-postgis/src/Schema/Blueprint.php

不确定发生了什么?

3 个答案:

答案 0 :(得分:0)

替换

use Illuminate\Database\Schema\Blueprint;

use Phaza\LaravelPostgis\Schema\Blueprint;

答案 1 :(得分:0)

您是否尝试过将$table->point('location')放在function up() 而没有$table->enablePostgis()

the documentation中的示例迁移中,任何地方都没有$table->enablePostgis()语句。

答案 2 :(得分:0)

原来我的postgres数据库连接细节(即用户名/密码)不正确!因此它与导入库无关..所以错误信息是如此误导..对不起家伙:(