试图从 laravel 8 上的数据库中获取特定记录

Posted

技术标签:

【中文标题】试图从 laravel 8 上的数据库中获取特定记录【英文标题】:Trying to get a specific record from database on laravel8 【发布时间】: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/… 【参考方案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);

【讨论】:

以上是关于试图从 laravel 8 上的数据库中获取特定记录的主要内容,如果未能解决你的问题,请参考以下文章

从 laravel 4.2 上的按钮行获取数据

Laravel 8:获取特定关系的“morphOne”类的所有模型的类名

试图从 laravel 中的日期获取月份(并且 postgres 提取不起作用)

如何在 laravel 8 中查看特定 id 的详细信息

如何从 Laravel 中的数组中获取特定的数组值

dynamodb 查询我试图使用 laravel 从 dynamodb 获取一些数据