这里是迁移。
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'));
}
这是路线。
主要错误始终来自未找到的ID。即使我的所有代码都是从第一个代码源复制并粘贴的,但是第一个源代码都运行良好。第三个源代码等等运行得很好。问题的根源始终在第二个表中,即使我更改了它的名称或使其从一开始就始终保持相同。是否存在拼写错误或区分大小写或我的代码有问题?
这是Web浏览器中的结果 here
答案 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错误。有关详细信息,请检查上面的链接