SQLSTATE[42S22]:找不到列:1054“where 子句错误”中的未知列“nim1”

问题描述 投票:0回答:1

运行更新功能时我的代码不会运行。

控制器

public function update(Request $request, Mahasiswa $mahasiswa)
{
    $validatedata = $request->validate([
        'nim'   => 'required|size:8|unique:mahasiswas,nim'.$mahasiswa->id,
        'Nama'  => 'required|min:3|max:50',
        'jk'    => 'required|in:P,L',
        'jurusan' => 'required',
        'alamat' => '',
    ]);

    Mahasiswa::where('id', $mahasiswa->id)->update($validatedata);

    return redirect()->route('mahasiswas.show',['mahasiwa'=>$mahasiswa->id])->with('pesan', "update data {$validatedata['Nama']} berhasil");
}

迁移

   public function up()
    {
        Schema::create('mahasiswas', function (Blueprint $table) {
            $table->id();
            $table->char('nim', 8)->unique();
            $table->string('Nama');
            $table->char('jk',1);
            $table->string('jurusan');
            $table->text('alamat')->nullable();
            $table->timestamps();
        });
    }

型号

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class mahasiswa extends Model
{
    use HasFactory;
    protected $guarded = [];
}

我编写的代码中的错误在哪里,以便我可以修复它?

php laravel laravel-query-builder
1个回答
0
投票

您在

$mahasiswa->id
之前漏掉了一个逗号。

$validatedata = $request->validate([
    'nim'   => 'required|size:8|unique:mahasiswas,nim,'.$mahasiswa->id,
    'Nama'  => 'required|min:3|max:50',
    'jk'    => 'required|in:P,L',
    'jurusan' => 'required',
    'alamat' => '',
]);
© www.soinside.com 2019 - 2024. All rights reserved.