【问题标题】:Laravel CRUD, Edit and Delete ID Not Found, But ID ExistLaravel CRUD,未找到编辑和删除 ID,但 ID 存在
【发布时间】:2018-09-24 04:07:59
【问题描述】:

这里是迁移。

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。即使我的所有代码都是从第一个代码源复制和粘贴的,但第一个源代码一切顺利。第三个源代码以此类推。问题的根源始终在第二张表中,即使我更改它的名称或从头开始它总是相同的。我的代码是否有拼写错误或区分大小写或有问题?

这是网络浏览器中的结果 here

【问题讨论】:

    标签: laravel crud laravel-5.7


    【解决方案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 错误。详情请查看以上链接

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多