Laravel CRUD,找不到编辑和删除ID,但是存在ID

时间:2018-09-24 04:08:00

标签: laravel crud laravel-5.7

这里是迁移。

Schema::create('ruanganjns', function (Blueprint $table) {
            $table->increments('id');
            $table->string('kode_jenis_ruangan');
            $table->string('jenis_ruangan');
            $table->date('tgl_berlaku');
            $table->string('status');
            $table->timestamps();
        });

这是模特。

protected $table = 'ruanganjns';
    protected $fillable = ['kode_jenis_ruangan','jenis_ruangan','tgl_berlaku','status'];
    public $timestamps = true;
    public function Ruangan()
    {
        return $this->HasMany('App\Ruangan','id_ruangan');
    }

这是控制器编辑代码。

public function edit(Ruanganjns $ruanganjns)
    {
        $ruanganjns = Ruanganjns::findOrFail($ruanganjns->id);
        return view('ruanganjns.edit', compact('ruanganjns'));
    }

这是路线。

here

主要错误始终来自未找到的ID。即使我的所有代码都是从第一个代码源复制并粘贴的,但是第一个源代码都运行良好。第三个源代码等等运行得很好。问题的根源始终在第二个表中,即使我更改了它的名称或使其从一开始就始终保持相同。是否存在拼写错误或区分大小写或我的代码有问题?

这是Web浏览器中的结果 here

1 个答案:

答案 0 :(得分:1)

您正在尝试实现Implicit model binding,但是在控制器操作中您使用了错误的变量名。它应与这样的路由占位符匹配

您的路线就是这样

Route::get('admin/ruangjns/{ruangjn}/edit', 'RuanganjnsController@edit');

然后您的控制器操作代码应如下所示

public function edit(Ruanganjns $ruangjn)  //here $ruangjn should match with route placeholder
{
    return view('ruanganjns.edit', compact('ruangjn'));
}

它会自动获取模型记录,如果找不到记录,则将返回404错误。有关详细信息,请检查上面的链接