【问题标题】:Trying to get a specific record from database on laravel8试图从 laravel 8 上的数据库中获取特定记录
【发布时间】:2021-06-14 14:15:08
【问题描述】:

我在页面中有一个基本上是登录表单的表单。现在我希望它仅通过使用用户名来获取用户名的全部记录(包括数据库中的passwordid 等)......这可能吗?

这是我最近的一次尝试,但每次我按下登录按钮时总是出错...最后一个错误是:

“试图获取非对象的属性‘用户名’(查看:E:\perkuliahan\pemrograman web lanjutan\perpustakaan\resources\views\halutama.blade.php)”

$cari = DB::select('select * from akuns where username = :username', ['username' => $vusername]);

return view('halutama')->with('cari', $cari);

在视图页面上我用它来获取数据:

{{$cari->username}} {{$cari->id}}

【问题讨论】:

  • 我猜$cari 是一个数组或对象集合,而不是单个对象。但是您可以在控制器内部使用Log::info($cari);dd($cari); 进行验证。
  • 尝试使用 Laravel 手册中建议的语法 - $user = DB::table('akuns')->where('name', $username)->first(); laravel.com/docs/8.x/…

标签: php mysql sql laravel


【解决方案1】:

做得更好

$cari = DB::table('akuns')->select('*')->where('username', $vusername)->first();

【讨论】:

  • 也许您可以详细说明 OP 如何“做得更好”,一些文档链接和/或您的查询如何工作的描述会有所帮助
【解决方案2】:

如果它显示"Trying to get property 'username' of non-object,这可能意味着查询返回了一个非对象。

检查Laravel Query Builder Documentation,看看查询是否正确。

我会这样写:

$cari = DB::table('akuns')->where('username', $vusername)->get();

记得使用->get()函数。

正如@anyber 所指出的,查询可能返回array 而不是object

【讨论】:

    【解决方案3】:

    您为什么要进行原始查询?如果你使用 Laravel,通过这么简单的查询,那么你必须使用 Eloquent...不要试图重新发明轮子或做一些疯狂的事情而不看文档...

    你的代码应该是这样的(假设你已经创建了一个模型……但我对此表示怀疑):

    $cari = Akun::where('username', $vusername)->first();
    
    return view('halutama')->with('cari', $cari);
    

    【讨论】:

      猜你喜欢
      • 2020-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-02
      • 2011-05-29
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      相关资源
      最近更新 更多