当前位置: 首页 > 知识库问答 >
问题:

Laravel php artisan迁移:刷新给出语法错误

龙永思
2023-03-14

这是代码:

public function up()
    {
        Schema::create('articles', function (Blueprint $table) {

            $table->increments('id');
            $table->integer('user_id')->unsigned();
            $table->string('title');
            $table->text('body');
            $table->timestamps();
            $table->timestamp('published_at');

            $table->foreign('user_id')->refrences('id')->on('users')->onDelete('cascade');
        });

和错误:

[Illuminate\database\queryException]SQLSTATE[HY000]:一般错误:1靠近“)”:语法错误(SQL:创建表“articles”(“id”integer not null主键自动递增,“user_id”integer not null,“title”varchar not null,“body”text not null,“created_at”
datetime not null,“created_at”updated_at“datetime not null,”published_at“datetime not null,外键(”user_id“)引用”users“(删除级联))

[PDOException]SQLState[HY000]:一般错误:1靠近“)”:语法错误

有什么想法吗?

共有1个答案

阚元白
2023-03-14

这里有一个错别字,你可以用引用代替折射

public function up()
    {
        Schema::create('articles', function (Blueprint $table) {

            $table->increments('id');
            $table->integer('user_id')->unsigned();
            $table->string('title');
            $table->text('body');
            $table->timestamps();
            $table->timestamp('published_at');

            $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
        });
 类似资料:
  • 我是一个绝对的初学者laravel。 我想在我的数据库中做一些改变。但是当我试图刷新我的数据库时,我一直在处理下面的错误。 在写这篇文章之前,我在谷歌上搜索了很多东西,阅读了很多参考资料。然而,所有这些都不起作用,帮助我解决了错误。 以前有人遇到过这个错误吗?如有任何建议,将不胜感激。提前谢谢。 PHP致命错误:未捕获异常“UnexpectedValueException”,消息为“流或文件”/w

  • 我以前从未使用过antlr,但现在不得不将旧版本的语法迁移到最新版本。我正在尝试为C#目标生成lexer和解析器。我在迁移下面看到的开始规则上卡住了。 我得到以下错误。语法错误:

  • 我正在处理PostgreSQL数据库。为了在其他不错的功能中实施迁移版本管理,我找到了用Go编写的迁移数据库迁移,并将其添加到我的项目中。到目前为止,我还没有遇到任何问题,但是,我遇到了一个问题,如果没有hacky解决方案,我无法克服。因此上下文如下,我有如下所示的迁移文件,其中包含4个表:user、sports、Chall和active。当我运行时,会抛出以下错误: 如果我从表中删除user\u

  • 我试图使用这个迁移,但我不断地得到错误,就像下面这样 这是我的迁移文件 SQLite3::SQLException:表“Employees”已存在:创建表“Employees”(“ID”整数主键AUTOINCREMENT NOT NULL,“name”varchar(255),“hiredate”date,“salary”float,“fulltime”boolean DEFAULT NOT“,”

  • 假设我有以下简单语法(查询DSL): 然后在某个时刻,我决定需要更改文本术语格式,例如: 我应该如何迁移用户使用以前版本的语法生成的现有数据?

  • 在下面的查询中,我使用了strftime函数来获取字符串格式的日期。它在sqlite数据库中运行良好。但是,当数据库更改为进程时,它抛出了一个错误,即“SQLSTATE[42883]:未定义函数:7错误:函数strftime(未知,没有时区的时间戳)不存在” 下面的代码在SQLite中工作,但在Postgres数据库中引发了一个错误