太长了;
在 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)
我正在构建一个 NextJS 应用程序,并且本地一切正常。它提取所有数据并且不会抛出任何错误。
\n但是,当我尝试运行时npm run build,出现预渲染错误。我尝试按照文档中的说明进行操作,但我发现它不是很有帮助。
问题可能是我正在使用导入帖子path.join(process.cwd(), \'./posts\'),在这种情况下,当它构建时,路径与开发中的路径有所不同?我想不出还有什么可能遗漏的。
包.json
\n{\n ...\n "scripts": {\n "dev": "next dev",\n "build": "next build",\n "start": "next start",\n "lint": "next lint"\n },\n ....\n}\nRun 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}\nRun Code Online (Sandbox Code Playgroud)\n这是我的文件结构:
\nlib\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) 我正在尝试通过 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,我收到拒绝访问错误。
我有一个应该相对简单的问题,但我已经阅读了这里的文档和多篇文章,但仍然无法弄清楚。:(
\n\n我正在创建一个具有本地化功能的 Laravel 应用程序(英语和法语)。就本地化而言,页面上的一切都运行良好。然而,当涉及到验证时,我似乎无法翻译错误。
\n\n这是一些示例代码:
\n\n请注意,我删除了大部分不相关的代码以使这个示例更清晰。
\n\n $validator = Validator::make($request->all(), [\n \'email\' => \'required|email|max:120\',\n ]);\nRun Code Online (Sandbox Code Playgroud)\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>\nRun Code Online (Sandbox Code Playgroud)\n\n资源/语言
\n\nzh
\n\n验证.php
\n\nFR
\n\n验证.php
\n\n<?php\n\nreturn [\n \'email\' => \'Veuillez ins\xc3\xa9rer une adresse email valide.\',\n];\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n
php\n\nreturn [\n \'email\' => \'Please insert a valid email address.\',\n];\nRun Code Online (Sandbox Code Playgroud)\n\n … 我正在尝试制作类似于 reddit 的东西(只是行列表中的排名想法)并希望每一行连续计数。
我可以在带有标签的一页上执行此操作
{{ $loop->iteration }}
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我转到第二页时,因为我使用分页,数字从 1 开始。但是,我希望它们从上一页的最后一个数字开始。
知道如何解决这个问题吗?
我感谢您的帮助!:)
laravel ×3
laravel-5.8 ×1
mysql ×1
next.js ×1
php ×1
pymysql ×1
python ×1
sqlite ×1
validation ×1