php - PHP Laravel save() 没有更新记录
问题描述
我是laravel的初学者。我正在更新记录,但我无法弄清楚$student->save();
我的控制器代码有什么问题,如下所示
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Student;
use PHPUnit\Framework\MockObject\Builder\Stub;
class HomeController extends Controller
{
public function read() {
$students = Student::all();
return view('read',['Students'=>$students]);
}
public function insert() {
return view('insert');
}
public function insertPost(Request $req) {
$student=new Student();
$student->Name = $req->input('name');
$student->Marks = $req->input('marks');
$student->save();
return redirect('/');
}
public function update($id) {
$student = Student::find($id);
return view('update',['Student'=>$student]);
}
public function delete($id) {
$student = Student::find($id);
$student->delete();
}
public function updatePost(Request $req) {
$student = Student::find($req->input('id'));
$student->Name=$req->input('name');
$student->Marks=$req->input('marks');
$student->save();
// Student::where('ID',$req->input('id'))
// ->update(['Name'=>$req->input('name'),
// 'Marks'=>$req->input('marks')]);
return redirect('/');
}
}
主要updatePost();
导致记录不更新
$student = Student::find($req->input('id'));
$student->Name=$req->input('name');
$student->Marks=$req->input('marks');
$student->save();
我将更新记录的方式更改为
Student::where('ID',$req->input('id'))
->update(['Name'=>$req->input('name'),
'Marks'=>$req->input('marks')]);
它奏效了。但我想知道我在哪个部分犯了错误。
解决方案
您需要将主键设置为 'ID' 默认情况下,主键或 PK 名称是 'id' 但在你的代码中它更改为 'ID' 所以你需要去你的 User.php 模型类并添加这一行
public $primaryKey = 'ID';
推荐阅读
- c# - 编写多个文本文件时,在我关闭 winform 之前,其中一些不会出现在 Windows 文件夹中
- java - Apache Commons Configuration 将属性设置为环境变量 - 如何?
- php - FPDF 字符编码
- java - 我正在尝试使用 isKeyPressed 方法,但它只是不起作用,是否有一个特定的地方我必须按下键?
- arrays - Postgressql中每个数组值的限制大小
- android - 从 Google Maven 手动下载 JAR
- powershell - 无法获取最新的 Conda 版本(具有升级的 PowerShell 初始化支持的 V 4.6.1)使用 PowerShell(理想情况下与 VSCode 集成)
- ios - UIImagePickerController 后退按钮/取消按钮不可见
- attask - 访问受限于 Workfront API - 无法通过 StreamClient 登录
- unity3d - 在公共变量上附加 Prefab 的子级或访问 Prefab 的子级