小编Alm*_*itt的帖子

Laravel 迁移时出现 Sqlite 错误:typeSet 不存在

太长了;

在 SQLite 中,是否有更好或替代的方法来使用“set”?

完整信息

我正在尝试在 Laravel 中运行迁移,它在 MySQL 上运行良好。然而,每当尝试在 SQLite 上的测试数据库上运行相同的迁移时,我都会遇到以下错误:

In Macroable.php line 103:

  Method Illuminate\Database\Schema\Grammars\SQLiteGrammar::typeSet does not exist.
Run Code Online (Sandbox Code Playgroud)

我知道该错误表明 SQLite 中不存在“set”。为了解决这个问题,我只是将“set”更改为“string”。然而,这是次优的,因为我想将该字段限制为特定值。

在 SQLite 中,是否有更好或替代的方法来使用“set”?

例子:

这是我的迁移,适用于 MySQL,但抛出了 typeSet 错误,如上所示:

Schema::create('subscribers', function (Blueprint $table) {
    $table->bigIncrements('id');
    $table->set('test', ['one', 'two', 'three']);
    $table->timestamps();
});
Run Code Online (Sandbox Code Playgroud)

这是我对 SQLite 数据库的临时修复:

Schema::create('subscribers', function (Blueprint $table) {
    $table->bigIncrements('id');
    $table->string('test', 255);
    $table->timestamps();
});
Run Code Online (Sandbox Code Playgroud)

感谢大家的意见和建议!

(感谢@Dilip的回答!对于看到此内容的其他人,如果您想了解更多有关 ENUM 和 SET 之间的区别,这个答案也很有帮助:MySQL enum vs. set

sqlite laravel laravel-migrations

5
推荐指数
1
解决办法
1016
查看次数

NextJS 预渲染错误 - 在开发中工作正常,在构建中中断

我正在构建一个 NextJS 应用程序,并且本地一切正常。它提取所有数据并且不会抛出任何错误。

\n

但是,当我尝试运行时npm run build,出现预渲染错误。我尝试按照文档中的说明进行操作,但我发现它不是很有帮助。

\n

问题可能是我正在使用导入帖子path.join(process.cwd(), \'./posts\'),在这种情况下,当它构建时,路径与开发中的路径有所不同?我想不出还有什么可能遗漏的。

\n

包.json

\n
{\n  ...\n  "scripts": {\n    "dev": "next dev",\n    "build": "next build",\n    "start": "next start",\n    "lint": "next lint"\n  },\n  ....\n}\n
Run Code Online (Sandbox Code Playgroud)\n

完整错误:

\n
{\n  ...\n  "scripts": {\n    "dev": "next dev",\n    "build": "next build",\n    "start": "next start",\n    "lint": "next lint"\n  },\n  ....\n}\n
Run Code Online (Sandbox Code Playgroud)\n

这是我的文件结构:

\n
lib\n \xe2\x94\x97 posts.js\npages\n \xe2\x94\xa3 blog\n \xe2\x94\x83 \xe2\x94\xa3 Blog\n \xe2\x94\x83 \xe2\x94\x83 \xe2\x94\x97 index.tsx\n \xe2\x94\x83 \xe2\x94\xa3 Hero\n \xe2\x94\x83 \xe2\x94\x83 \xe2\x94\x97 index.tsx\n …
Run Code Online (Sandbox Code Playgroud)

next.js

5
推荐指数
1
解决办法
9395
查看次数

pymysql.err.InternalError:数据包序列号错误 - 预期为 45 0

我正在尝试通过 pymysql 连接到 mysql 数据库。当我通过终端通过 SSH 进入数据库时​​,一切正常。所以,这个信息是正确的。但是,当我在使用 pymysql 时输入相同的信息时,出现以下错误:

pymysql.err.InternalError: Packet sequence number wrong - got 45 expected 0
Run Code Online (Sandbox Code Playgroud)

pymysql 版本:0.9.2

代码(请注意,出于安全原因,我更改了有关主机、用户、密码、数据库和端口的信息)。

import pymysql.cursors

connection = pymysql.connect(host='myhost',
                             user='userid',
                             password='mypassword',
                             db='my_database',
                             charset='utf8mb4',
                             port=9047,
                             cursorclass=pymysql.cursors.DictCursor)

except Exception as e:
    print('connection failed')
    print(e)
Run Code Online (Sandbox Code Playgroud)

这段代码更早运行。我不得不为另一个项目升级包,现在它停止工作。我想这可能是原因。

有没有人遇到过这个?如果是这样,你是如何解决的?

谢谢!

*我也尝试过不同的端口。我在这里注意到他们使用了端口 22 或 3306,但是使用端口 22,我收到超时错误和端口 3306,我收到拒绝访问错误。

python mysql pymysql

3
推荐指数
2
解决办法
8718
查看次数

Laravel 5.8 验证本地化 - 不翻译错误消息

我有一个应该相对简单的问题,但我已经阅读了这里的文档和多篇文章,但仍然无法弄清楚。:(

\n\n

我正在创建一个具有本地化功能的 Laravel 应用程序(英语和法语)。就本地化而言,页面上的一切都运行良好。然而,当涉及到验证时,我似乎无法翻译错误。

\n\n

这是一些示例代码:

\n\n

请注意,我删除了大部分不相关的代码以使这个示例更清晰。

\n\n

控制器内的验证器

\n\n
 $validator = Validator::make($request->all(), [\n      \'email\' => \'required|email|max:120\',\n ]);\n
Run Code Online (Sandbox Code Playgroud)\n\n

刀刃

\n\n
<div class="form-group">\n    <label for="input-email">@error(\'email\') {{ $errors->first(\'email\') }} @else @lang(\'index.email\') @enderror</label>\n    <input type="email" name="email" placeholder="@lang(\'index.email\')" value="{{ old(\'email\') }}">\n</div>\n
Run Code Online (Sandbox Code Playgroud)\n\n

验证结构

\n\n

资源/语言

\n\n

     zh

\n\n

         验证.php

\n\n

     FR

\n\n

         验证.php

\n\n

fr/validation.php

\n\n
<?php\n\nreturn [\n    \'email\' => \'Veuillez ins\xc3\xa9rer une adresse email valide.\',\n];\n
Run Code Online (Sandbox Code Playgroud)\n\n

en/validation.php

\n\n

\n\n

php\n\nreturn [\n    \'email\' => \'Please insert a valid email address.\',\n];\n
Run Code Online (Sandbox Code Playgroud)\n\n …

php validation internationalization laravel laravel-5.8

1
推荐指数
1
解决办法
6809
查看次数

Laravel - 使用 $loop-&gt;iteration 进行分页

我正在尝试制作类似于 reddit 的东西(只是行列表中的排名想法)并希望每一行连续计数。

例子 Reddit 列表

我可以在带有标签的一页上执行此操作

{{ $loop->iteration }}
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我转到第二页时,因为我使用分页,数字从 1 开始。但是,我希望它们从上一页的最后一个数字开始。

知道如何解决这个问题吗?

我感谢您的帮助!:)

laravel

0
推荐指数
1
解决办法
8866
查看次数