如何解决Laravel 使用列键/值从数据库中获取值
+-----------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+---------------------+------+-----+---------+----------------+
| id | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(255) | NO | | NULL | |
| value | varchar(255) | NO | | NULL | |
+-----------------+---------------------+------+-----+---------+----------------+
我将通过名称访问值。
例如我有这些数据:
+----+------------+------------+
| id | name | value |
+----+------------+------------+
| 1 | start_date | 2020-01-01 |
| 2 | end_date | 2021-01-01 |
+----+------------+------------+
我希望在“start_date”之前获得“2020-01-01”。
我尝试了这段代码,但我并不满意,因为通过这段代码,我得到了该行的所有值,而不仅仅是预期的值。
Configuration::get()->keyBy('start_date');
我不确定我是否清楚。
告诉我。
非常感谢!!
解决方法
假设您想获得一个键/值对数组,并且 name
列中的每个键都是唯一的,您可以简单地使用 pluck()
(https://laravel.com/docs/8.x/collections#method-pluck):
$configuration = Configuration::pluck('value','name');
dd($configuration);
// ['start_date' => '2020-01-01','end_date' => '2021-01-01']
然后,您只需使用数组访问即可在适用的情况下使用这些配置设置:
$startDate = $configuration['start_date']; // '2020-01-01'
$endDate = $configuration['end_date']; // '2021-01-01'
...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。