视图返回laravel中某些ID的错误

时间:2017-06-30 15:38:50

标签: laravel dynamic model controller laravel-blade

这对我来说真的很奇怪。当我想从行显示数据时,一些数据返回错误。 我只能查看id s (1-7, 10, 13-17,22 and so)的数据,id (8,9,11,12,18,19,20,21..)返回错误的数据。

如果我去http://manajemenpasien.com/PasienPoli/17,我会得到我预期的页面。但是当转到这个http://manajemenpasien.com/PasienPoli/19时,我收到了这个错误:

ErrorException in Collection.php line 1564:
Property [nama] does not exist on this collection instance. (View: D:\myProjects\manajemenPasien\resources\views\PasienPoli\show.blade.php)

[nama]是表格pasiens

中的字段名称

这就是我在PasienPoliController中所拥有的:

public function show($id)
{
   $pasienpoli = PasienPoli::find($id);
   $pasien = Pasien::find($id)->PasienPoli;

   return view('pasienpoli.show', compact('pasienpoli','pasien'));  
   }

PasienPoli Model

public function pasien()
{
    return $this->belongsTo('App\Pasien');
}

Pasien Model

public function pasienpoli()
{
    return $this->hasMany('App\PasienPoli');
}

show.blade.php

<h2>{{$pasienpoli->pasien->nama}}</h2>

pasien_polis的表结构:

id - int(10) - auto_increment
polyclinic_id - int(11)
pasien_id - int(11)
penyakit - varchar(50)

pasiens的表结构:

id - int(10) - auto_increment
nama - varchar(50)

这有什么问题?

2 个答案:

答案 0 :(得分:1)

您的数据库中很可能不存在这些ID。在您的视图中检查您的数据库或dd集合,以了解正在发生的事情。

答案 1 :(得分:1)

将您的代码修改为:

public function show($id)
{
   if(($pasienpoli = PasienPoli::find($id)) == NULL)
   return view('pasienpoli.notfound', []);  
   $pasien = Pasien::find($id)->PasienPoli;

   return view('pasienpoli.show', compact('pasienpoli','pasien'));  
}

如果id不存在,您可以返回另一个视图或您想要的内容。