【问题标题】:View returns error for certain ids in laravel在 laravel 中查看某些 id 的返回错误
【发布时间】:2017-12-04 15:18:23
【问题描述】:

这对我来说真的很奇怪。当我想显示行中的数据时,一些数据返回错误。 我只能查看ids (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'));  
   }

PasienPoliModel:

public function pasien()
{
    return $this->belongsTo('App\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)

这有什么问题?

【问题讨论】:

    标签: laravel dynamic model controller laravel-blade


    【解决方案1】:

    这些 id 很可能在您的数据库中不存在。检查您的数据库或 dd 您视图中的集合以了解发生了什么。

    【讨论】:

    • 我查过了,都存在。
    • dd($pasienpoli) 看看你有什么数据
    • dd with id=10 我得到数据,dd with id=19,它说空。
    • 抱歉id=19 为空,id=9 显示芯片转储结果。但是在 `id=10 显示数据时删除 dd() 时出错。
    • 我发现了问题。当我用{{$pasienpoli-&gt;pasien-&gt;nama}} 替换时,显示页面中有一个隐藏字段表单,此值{{$pasien-&gt;nama}} 已解决。无论如何,感谢您的宝贵时间。
    【解决方案2】:

    修改你的代码:

    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 不存在,您可以返回另一个视图或您想要的。

    【讨论】:

    • 我发现了问题。显示页面中有一个隐藏的表单字段,当我用{{$pasienpoli-&gt;pasien-&gt;nama}} 替换它时,这个值{{$pasien-&gt;nama}} 解决了。无论如何,感谢您的宝贵时间。
    猜你喜欢
    • 1970-01-01
    • 2022-07-01
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-09
    • 2020-05-24
    • 2018-06-24
    相关资源
    最近更新 更多