我正在尝试将数据写入我的 SQLite 数据库。我认为我的迁移文件和外键存在错误。我试图更改文件的名称,使外键可以为空并清除 Laravel 的缓存。您是否熟悉错误处理程序显示的错误,或者您能否将我指向一个可以帮助我理解我做错了什么的页面?非常感谢您提前。迁移文件:<?phpuse Illuminate\Support\Facades\Schema;use Illuminate\Database\Schema\Blueprint;use Illuminate\Database\Migrations\Migration;class CreateSqrTable extends Migration{ /** * Run the migrations. * * @return void */ public function up() { Schema::create('sqrs', function (Blueprint $table) { $table->bigIncrements('id'); $table->unsignedInteger('user_id')->nullable(); $table->string('qr_link'); $table->timestamps(); $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('sqr'); }}模型文件:<?phpnamespace App;use Illuminate\Database\Eloquent\Model;// sQR stands for Saved QR-Codeclass sqr extends Model{ protected $fillable = [ 'qr_link', 'user_id' ];}保存的控制器:<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;use App\sqr;class saveController extends Controller{ public function save(Request $request) { $sqr = new sqr; $sqr->qr_link = $request->qr_link; $sqr->user_id = 1; $sqr->save(); return redirect('/'); }}前端刀片文件:<form method="post" action="/save"> @csrf <input type="hidden" name="qr_link" value="{{ session('url') }}"> <button class="btn btn-success">Save this QR</button> </form>我得到的错误如下:SQLSTATE[23000]: Integrity constraint violation: 19 FOREIGN KEY constraint failed (SQL: insert into "sqrs" ("qr_link", "user_id", "updated_at", "created_at") values (images/1567444499.svg, 1, 2019-09-02 17:37:23, 2019-09-02 17:37:23))
1 回答

HUX布斯
TA贡献1876条经验 获得超6个赞
@dparoli 在这篇文章的评论中说:
“您确定您在数据库中有一个 id = 1 的用户吗? – dparoli”
这是我的问题的答案。因为数据库中有 nog user = 1,所以崩溃了。
- 1 回答
- 0 关注
- 212 浏览
添加回答
举报
0/150
提交
取消