揭露一百万美元的ChatGPT问题。

AI永远不会取代人类:拥抱协作的力量

介绍:

你可能在开发过程中使用了ChatGPT,因为它可以帮助你创建逻辑、解决问题和编写代码。但是,像MVC架构这样复杂的情况,对每个人来说都很困难,不是吗?那么为什么对ChatGPT也不是困难呢?所以,如果你是一名中级开发人员,没有太多的后端原则工作经验,你会遇到这些问题,即使是ChatGPT也可能无法有效地帮助你。

摘要:

本文讨论了在 Laravel 开发项目中使用 ChatGPT 协助时所面临的挑战。它强调了了解 MVC 架构的重要性以及处理外键、表关系和表单提交时可能遇到的陷阱。通过一个真实的场景,我们探讨了故障排除和发现导致数据未被正确存储的关键性错误的过程。本文旨在为使用 ChatGPT 或类似 AI 动力工具开发其项目的开发人员提供有价值的见解和教训。

所以请跟着我,我会给你讲一个有关 Laravel 的故事,Laravel 是一个基于 MVC 架构的 PHP 框架。相比于核心 PHP,使用它进行 CRUD 操作和定义表之间的关系等任务更具挑战性。

我在一个项目上工作,需要在数据库中创建两个表格:“代理”和“线索”。因此,当一个代理提交一个线索时,它应该被存储在“线索”表中。代理必须选择他们的姓名并在提交之前填写表单中的其他字段。此外,在另一个 blade 文件中,我需要按降序显示每个代理的线索总数。如果你仔细想一想,你会意识到外键关系的存在,对吧?

因此,我向ChatGPT提出了以下问题:“你能为我提供两个移民代理及其潜在客户吗?每个代理都应该有一个名字,而潜在客户应该包括代理的名字,城市,年龄等信息。”

// agents migration
public function up()
{
Schema::create('agents', function (Blueprint $table) {
$table->id();
$table->string('name');
// add any other agent fields you need
$table->timestamps();
});
}

// leads migration
public function up()
{
Schema::create('leads', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('agent_id');
$table->string('name');
// add any other lead fields you need
$table->timestamps();

$table->foreign('agent_id')->references('id')->on('agents');
});
}

ChatGPT 创建了这个迁移,我已经成功执行它,在 Laravel 中创建了所有必要的相关模型、控制器和 blade 文件。

但问题从这里开始。我又问了ChatGPT一遍控制器代码,它储存所有信息,例如代理人的姓名和图纲中设计的其他信息。

然后ChatGPT给我这种类型的控制器代码。

public function store(Request $request)
{
$validatedData = $request->validate([
'agent' => 'required',
'name' => 'required', // Add validation for the name field
// Add validation rules for other lead fields
]);

$lead = new Lead();
$lead->agent_id = $validatedData['agent'];
$lead->name = $validatedData['name']; // Set the name field value
// Set other lead fields based on your form inputs
$lead->save();

// Redirect to a success page or perform other actions

return redirect()->route('leads.create')->with('success', 'Lead created successfully.');
}

然而,当我保存并访问所需的路由时,它会抛出像这样的错误。

2023-10-20 17:03:32 AI中文站翻译自原文